【发布时间】:2015-03-30 00:03:06
【问题描述】:
我正在尝试接收一个字符串输入,该输入由多行数字组成,由 ',' 和 ';' 分隔.
例子:
1,2;3,4;5,6;
9,8;7,6;
0,1;
;
代码:
ArrayList<Integer> alist = new ArrayList<>();
String delims = ";|\\,";
int i = 0;
Scanner input = new Scanner(System.in);
input.useDelimiter(delims);
while (input.hasNext()) {
alist.add(i, input.nextInt());
System.out.print(i + ' ');
System.out.print(alist.get(i) + '\n');
i++;
}
System.out.print('x');
当我在 Eclipse 中运行它时:
1,2;3,4;5,6; ( <= what i typed in console)
321133123413351436153716 ( <= output)
我希望有更多类似的东西:
0 1
1 2
2 3
3 4
4 5
5 6
x
为什么我会得到这种输出?
【问题讨论】:
-
我使用的Scanners
hasNext()方法一直是在读取文件的时候;也许你需要一个哨兵控制的循环。循环直到用户输入 -999 或不应该是输入数据一部分的 int
标签: java arraylist while-loop java.util.scanner system.in