【发布时间】:2015-02-17 03:40:11
【问题描述】:
我在java中遇到ArrayList的问题,所以我尝试使用BufferedReader逐行读取输入,并且输入停止,直到用户发送一个空行。一切正常,直到我尝试逐行阅读。
我想我已经在那个 while() 条件下处理了它,但它返回 ArrayIndexOutofBoundsException。
输入示例:
200 200
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<Villain> Villains = new ArrayList<Villain>();
String data;
while((data = reader.readLine()) != null)
{
data = reader.readLine();
String[] Split = data.split(" ");
int level = Integer.parseInt(Split[0]);
int strength = Integer.parseInt(Split[1]);
Villain vill = new Villain(level, strength);
Villains.add(vill);
}
【问题讨论】:
-
您检查过
String[] Split = data.split(" ");的长度吗?您确定正在发生这种拆分,因为您正在尝试访问下一行中的元素? -
可以查看
Split数组的长度,看用户是否输入了空行,例如:if(Split.length < 2){break;} -
是否有机会避免使用break; ?
-
由于您从控制台读取
data变量永远不会是null,这就是为什么您需要从循环中break。 -
是的,我发现了问题,是拆分器试图拆分空行,因为它没有行所以它返回 ArrayIndexoutofBound
标签: java arrays bufferedreader