我有一个方法可以将SQLite列转换为String []形式。然后我填写了一个"前十名"列出该数据。如果列至少有10行,则一切正常,但如果长度小于10,则会出错。
我试图检查null,但似乎程序崩溃尝试在不存在的String []字段上检查null。如何创建一个新的String [](相同的名称或其他名称),只需添加空格,以便最小长度为10?
编辑添加:我仍想填充前十名,即使它少于10个元素。
答案 0 :(得分:2)
您可以使用Arrays类
轻松实现此目的 String oldArr[] = {"one", "two", "three"};
System.out.println(Arrays.toString(oldArr));
String newArr[] = Arrays.copyOf(oldArr, 10);
System.out.println(Arrays.toString(newArr));
for (int x = oldArr.length; x < newArr.length; x++) {
newArr[x] = "unset";
}
System.out.println(Arrays.toString(newArr));
<强>输出强>
[one, two, three]
[one, two, three, null, null, null, null, null, null, null]
[one, two, three, unset, unset, unset, unset, unset, unset, unset]
答案 1 :(得分:-1)
要回答上一个问题,您需要初始化数组:
String [] stringArray = {“”,“”,“”,“”,“”,“”,“”,“”,“”,“”};
或者如果它更大,你可以使用循环:
String [] stringArray = new String [100]; for(int i = 0; i&lt; 100; i ++){ stringArray [i] =“”; }
如果你首先初始化它,你就不会得到那个例外,但是你应该始终确保你没有尝试通过检查数组长度来读取不存在的数组中的数据:stringArray.length。 / p>