Scanner scan = new Scanner(System.in);
System.out.println("Enter the names of each song in the DJ's playlist: ");
System.out.println("When finished, enter done.");
ArrayList <String> NamesOfSongs = new ArrayList<>();
boolean loop = true;
while(loop)
{
String input = scan.nextLine();
if (input.equals("done"))
{
break;
}
else
{
NamesOfSongs.add(scan.nextLine());
}
}
System.out.println(NamesOfSongs);
}
需要将输入字符串添加到ArrayList,直到用户输入“done”并且该方法完成。
结果:(在我输入 3 个字符串并完成两次之后)
Enter the names of each song in the DJ's playlist:
When finished, enter done.
jjjj
kkkkk
iiii
done
done
[kkkkk, done]
最佳答案
要比较字符串,您必须使用equals
方法。
例如input.equals(“done”)
。如果字符串“s”相等,则此方法返回true
。
在 else 代码中,您不得使用 NamesOfSongs.add(scan.nextLine());
,因为您要求用户输入新值。您想要检索已输入的值
因此,使用 NamesOfSongs.add(input);
并且,要显示 ArraysList 的内容,您可以使用循环“for”
/* Print the song*/
for(int i = 0; i < NamesOfSongs.size(); i++) {
System.out.println(NamesOfSongs.get(i));
}
<小时/>
Scanner scan = new Scanner(System.in);
System.out.println("Enter the names of each song in the DJ's playlist: ");
System.out.println("When finished, enter done.");
ArrayList <String> NamesOfSongs = new ArrayList<>();
boolean loop = true;
while(loop) {
String input = scan.nextLine();
if(input.equals("done")) {
/* Stop the input => stop while loop*/
loop = false;
} else {
/* add song */
NamesOfSongs.add(input);
}
}
/* Print the song*/
for(int i = 0; i < NamesOfSongs.size(); i++) {
System.out.println(NamesOfSongs.get(i));
}
}
关于java - 如何要求用户输入字符串直到用户完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59922222/