大家好我试图写一个没有指定大小的字符串数组列表,我设置了一个带有哨兵的for循环来控制输入量,但它似乎不起作用,这是鳕鱼的一块我认为有问题,请帮助!
public static void main(String args[])
{
ArrayList<String> a=new ArrayList<String>();
String string;
String string2;
char[] string1=new char[1];
char c;
for(int i=0;!"null".equals(a.get(i));i++)
{
string=input.nextLine();
a.add(i,string);
}
答案 0 :(得分:0)
我认为你收到了一个错误。我建议您阅读错误,如果您不理解,您应该搜索它或将其包含在问题中。
在这种情况下,您的测试会被破坏。你没有null
值或"null"
(这不是同一个东西)实际上你没有元素0
这就是它抛出异常的原因。
一个简单的解决方案是在阅读时检查您阅读的内容。
List<String> a = new ArrayList<String>();
while(input.hasNext())
a.add(input.readLine());
答案 1 :(得分:0)
!"null".equals(a.get(i))
只会检查a.get(i)
返回的字符串是否不等于"null"
。我想你要做的就是检查a.get(i) == null
,这不会有效,因为从列表大小的列表中请求一个项目的项目会抛出java.lang.IndexOutOfBoundsException
。
要正确迭代List
,请使用foreach循环:
for(Object o : list) {
//Execute your code
}
答案 2 :(得分:0)
我认为我必须得到一个假值的部分!“null”.equals(a.get(i))不能正常工作,因为程序没有退出循环