【发布时间】:2013-06-05 16:21:33
【问题描述】:
所以我有一个长度为 10 的字符串数组。我添加了一个或两个值,其余的仍然为空。我希望能够返回并从第一个非空元素开始添加更多值。我如何获得索引号?目前我的逻辑覆盖数组并从 0 索引开始。提前致谢。
【问题讨论】:
-
把你的这个逻辑贴出来怎么样?
-
遍历数组直到找到一个空???
标签: java arrays string null indexing
所以我有一个长度为 10 的字符串数组。我添加了一个或两个值,其余的仍然为空。我希望能够返回并从第一个非空元素开始添加更多值。我如何获得索引号?目前我的逻辑覆盖数组并从 0 索引开始。提前致谢。
【问题讨论】:
标签: java arrays string null indexing
您可以创建一个自定义方法,检查数组中的最后一个 null 元素并返回它的索引。
public int getTheIndexOfNull(String[] array) {
int result = -1;
for (int i = 0; i < array.length; i++) {
if (array[i] == null) {
result = i;
break;
}
}
return result;
}
【讨论】:
return i 和 return -1 而不是 break 怎么样?或者至少result = i; return i;。
return i; return -1 而不是 break ?再想想。 :)
result变量,你会看到。
Arrays.asList(array).indexOf(null)。
与其重新发明轮子,不如只使用ArrayList<String>?在内部,它完全符合您的要求:它有一个Object[],其中项目在当前长度之后是null,它有一个int,表示下一个空索引是什么。
【讨论】:
数组创建后数组长度不能改变。但是,您始终可以为任何元素分配任何值"
String[] a = new String[10];
a[5] = "foo";
a[6] = "bar";
要找到第一个空元素进入循环并赋值:
for (int i = 0; i < a.length; i++) {
if (a[i] == null) {
a[i] = s;
break;
}
}
【讨论】:
你可以试试:
String[] yourArray = new String[10];
yourArray[0] = "zero";
yourArray[1] = "one";
for (int i = 0; i < yourArray.length; i++) {
if(yourArray[i] == null){
yourArray[i] = "youElemAfterFirstNonNullElem";
break;
}
}
【讨论】: