使用ArrayList进行用户输入

时间:2018-06-26 20:16:34

标签: java arraylist input java.util.scanner user-input

我想允许用户输入字符串,直到输入空行,并将字符串存储在ArrayList中。我有以下代码,我认为是正确的,但显然不正确。

String str = " "; 
Scanner sc = new Scanner(System.in);
ArrayList<String> list = new ArrayList<String>();     
System.out.println("Please enter words");
while (sc.hasNextLine() && !(str = sc.nextLine()).equals("")) {
    list.add(sc.nextLine());
} 

for(int i=0; i<list.size(); i++) {
    System.out.println(list.get(i));
}

1 个答案:

答案 0 :(得分:2)

调用一次sc.hasNextLine()但两次sc.nextLine()时,您可能会多消耗下一行。
而是调用一次nextLine(),然后使用存储结果的变量来检索读取的行:

while (sc.hasNextLine() && !(str = sc.nextLine()).equals("")) {
    list.add(str);
}