再次需要帮助。抱歉。如何从数组中删除空值?这是我到目前为止所得到的。
int unikCount = 0;
String c = " ";
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length; j++) {
if (tempAry[i].equals(tempAry[j])) {
unikCount++;
}
if (unikCount > 1) {
tempAry[j] = c;
unikCount = 1;
}
}
unikCount = 0;
}
for (i = 0; i < a.length; i++) {
if (tempAry[i] != c) {
unikCount++;
}
}
System.out.println(unikCount);
for (int i = 0; i < a.length; i++) {
for (int j = 1; j < a.length; j++) {
if (tempAry[i].equals(tempAry[j])) {
if (tempAry[i] == c) {
count++;
if (tempAry[j] != c) {
count++;
tempAry[j] = tempAry[i];
}
}
}
}
}
count = 0;
for (int i = 0; i < a.length; i++) {
System.out.println(tempAry[i]);
}
*删除部分位于&#34; System.out.println(unikCount)&#34;之后。感谢即将到来的帮助。顺便说一句,不能使用哈希和arraylist。
答案 0 :(得分:2)
您可以像这样检查null
:
if ( null == someObject )
{
// do things
}
无法从数组中删除元素并使其自动缩小。您必须使用临时数组来保存值,创建一个新大小的数组并传输所有这些项。
更有效的方法是使用List。
答案 1 :(得分:0)
查看您的逻辑(正确缩进):
if(tempAry[i].equals(tempAry[j])) {
if(tempAry[i] == c) {
count++;
if(tempAry[j] != c) {
count++;
tempAry[j] = tempAry[i];
}
}
}
没有任何意义。你为什么要检查tempAry[j] != c
里面的内容 if(tempAry[i] == c)
???
您的意思是使用if...else
吗?
答案 2 :(得分:0)
int j = 0;
Object[] temp = new Object[a.length];
for (int i = 0; i < a.length; i++) {
if (a[i] != null) {
temp[j++] = a[i];
}
}
Object[] newA = new Object[j];
System.arraycopy(temp, 0, newA, 0, j);
如果数组是例如String的数组,您当然会将“Object”更改为“String”。如果“null”表示空字符串,则if
测试将被适当更改。