【发布时间】:2012-03-25 08:38:36
【问题描述】:
我想消除我的String 数组中的空元素。这是我迄今为止尝试过的:
String version = null;
String[] xml = new String[str.length];
for(int i = 0; i <= str.length -1; i++)
{
if(str[i] == "")
{
}
else
{
xml[i] = str[i];
}
}
String version = null;
String[] xml = new String[str.length];
for(int i = 0; i <= str.length -1; i++)
{
if(!str[i].equals(""))
{
xml[i] = str[i];
}
}
String version = null;
String[] xml = new String[str.length];
for(int i = 0; i <= str.length -1; i++)
{
if(!str[i].isEmpty())
{
xml[i] = str[i];
}
}
String version = null;
String[] xml = new String[str.length];
for(int i = 0; i <= str.length -1; i++)
{
if(str[i].isEmpty() == false)
{
xml[i] = str[i];
}
}
无论我尝试哪一个,它总是复制所有值。我查了locals,很明显String数组里面有空数组。
【问题讨论】:
-
你确定其中没有空格?
-
顺便说一句,您确实意识到,只要您不复制字符串,就会在
xml[i]留下null,对吧?对两个数组使用相同索引的后果之一... -
你确定它们是空的(而不仅仅是包含空白字符的字符串)?也许在进行比较之前尝试修剪(
str[i].trim())?请注意,==不是您想要的,但其他两个应该可以工作。 -
是的...我很确定...我会发布一张图片..
-
@BlueMonster:如果您要复制到数组中,则不会 - 因为您将较少的元素复制到相同大小的数组中,所以那里几乎总是会有空值,除非您检查一次并计算有多少字符串不为空,然后在复制之前将
xml设为该大小。 (如果你这样做,你可以拥有另一个 int,它是xml的索引,并且每当你复制一个字符串时都会撞到它。)但更好的是使用 ArrayList,如下所述。