【发布时间】:2014-01-10 04:41:51
【问题描述】:
我很难理解扫描仪类的工作原理。事实上,我想从这个输入:
AAAA BBBG GREZZ
ADFG GTRE
冻结
将此输出作为 ArrayList: [AAAA、BBBG、GREZZ、ADFG、GTRE、FREZZ]
我的代码如下:
System.out.println("list of words?");
Scanner scan3 = new Scanner(System.in);
scan3.useDelimiter("[\\s+\\n]");
ArrayList<String> test = new ArrayList<String>();
while(scan3.hasNext()){
String temp = scan3.next();
if(temp.equals("STOP")){
break;
}else{
test.add(temp);
}
}
System.out.println(test);
我的输入是:
AAAA BBBG GREZZ
ADFG GTRE
冻结停止
我的输出是: [AAAA, BBBG, GREZZ, , ADFG, GTRE, , FREZZ]
我的问题有两个:
- 为什么我在列表中插入了一个空元素(我认为这与新行有关)?
- 您可能已经注意到,我在末尾添加了字符串“STOP”以停止循环,因为条件 scan3.HasNext() 总是返回“true”,这是唯一的方法吗?
非常感谢您的帮助。
【问题讨论】:
标签: java java.util.scanner next