2015-07-12 80 views
0

我是新來的Java,我想採取下列輸入:但無法將文字輸入Java中

我能夠把輸入的整數,但無法採取字符輸入。

我用下面的代碼

Scanner s = new Scanner(System.in); 
int o = s.nextInt(); 
    if(o==0) 
     { 
      int l=s.nextInt(); 
      char c=s.next().charAt(0); 
     } 
+0

does next.char(0)只從輸入中取第一個字母? –

+1

我的代碼中沒有看到任何錯誤。你能解釋一下你的問題嗎? – Eranda

+2

你的代碼工作得很好([demo](http://ideone.com/3uWmco))。 – dasblinkenlight

回答

1

可能那是因爲掃描儀#nextInt方法不讀​​你輸入的最後一個 換行符,因此該換行符在 下次調用消耗掃描儀#nextLine。

nextInt後觸發新行。

Scanner s = new Scanner(System.in); 
    int o = s.nextInt(); 
    s.nextLine(); 
     if(o==0) 
      { 
       int l=s.nextInt(); 
s.nextLine(); 
       char c=s.next().charAt(0); 
      } 
+0

-1。下一次調用'nextInt'將忽略任何即將到來的換行符。代碼中沒有對'nextLine'的調用。混合'nextLine'和'next'或'nextInt'通常不是一個好主意,因爲這些被忽略的'nextLine'語句必須使用,但是如果你堅持使用另一個,你就不會有任何問題,並且這些都沒有必要。對問題中的代碼鏈接的評論工作正常。 – Dukeling