我正在尝试使用 hasNext ()和循环来分割单词,但它不起作用,这是我的代码,下面是输出
Scanner kb = new Scanner(System.in);
System.out.println("Please enter your full name");
String name = kb.next();
while(kb.hasNext()) {
System.out.println(kb.next());
}
以下是它显示的输出:
Please enter your full name John Smith
但它应该显示:
John Smith
为什么呢?我该如何解决?
答案 0 :(得分:3)
你这样做:
String name = kb.next();
但你永远不会打印name
。
如果您只想逐字逐句地输入用户并在单独的行中打印,您可以这样做:
Scanner kb = new Scanner(System.in);
System.out.println("Please enter your full name");
while (kb.hasNext()) {
System.out.println(kb.next());
}
示例:
John Paul Smith
输出
John
Paul
Smith
答案 1 :(得分:0)
您对kb.next
的初始调用会从队列中弹出“John”。然后,您输入一个循环并从kb.next
打印 next return语句,即“Smith”。请尝试以下方法,
System.out.println("Please enter your full name");
Scanner kb = new Scanner(System.in);
while (kb.hasNext()) {
System.out.println(kb.next());
}