我想允许用户输入字符串,直到输入空行,并将字符串存储在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));
}
答案 0 :(得分:2)
调用一次sc.hasNextLine()
但两次sc.nextLine()
时,您可能会多消耗下一行。
而是调用一次nextLine()
,然后使用存储结果的变量来检索读取的行:
while (sc.hasNextLine() && !(str = sc.nextLine()).equals("")) {
list.add(str);
}