2015-04-05 23 views
1

我試圖用hasNext()和分開單詞的第一個字,但它不工作,這是我的代碼以下是輸出不能顯示與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 

爲什麼?我如何解決它?

+1

非常感謝! – 2015-04-05 23:27:23

回答

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 
0

您最初的致電kb.next從隊列中彈出「John」。然後,您輸入一個循環並打印下一個返回語句kb.next,這是「史密斯」。請嘗試以下操作,

System.out.println("Please enter your full name"); 
Scanner kb = new Scanner(System.in); 

while (kb.hasNext()) { 
    System.out.println(kb.next()); 
} 
+0

@安德森維埃拉打敗了我。 – 2015-04-05 22:44:18

+1

我有變量名稱,因爲我正在將初始化的單詞分成變量。然後,我決定通過用戶輸入來獲得這個詞(我只是在練習不同的方式......),但正如你們可以說的那樣,我完全是Java的初學者,所以我不知道我必須刪除它。感謝你們倆!你的解決方案工作 – 2015-04-05 23:23:24