java Scanner類中next()、nextInt()以及nextLine()用法


今天,在整理筆記的時候發現一個奇怪的現象:

第一種情況                                

會發現輸出結果跟我們想象的有很大的差別,就是控制台還沒輸入姓名,就已經輸出顯示了。

原因如下:

Scanner是一個掃描器,我們錄取到鍵盤的數據,先存到緩存區等待讀取,它判斷讀取結束的標示是  空白符;比如空格,回車,tab 等等。

next()方法讀取到空白符就結束;

nextLine()讀取到回車結束也就是“\r”;

所以沒還順序前測試的時候next()再檢測的空格的時候就結束輸出了。

修改順序后遇到的問題就是因為next()讀取到空白符前的數據時結束了,然后把回車“\r”留給了nextLine();所以上面nextLine()沒有輸出,不輸出不代表沒數據,是接到了空(回車“/r”)的數據。

第二種情況:                                      

 

第三種情況:                          

 

第四種情況:         

 

 第四種情況:如果需要從鍵盤接收多個字符串,可以把nextLine()放到nextInt()前面,如果實在不行,則在nextInt()后邊添加nextLine()方法吸收掉多余的字符串

 綜上:二三四種情況都正確,編寫程序的時候注意使用順序就不會出錯。

 

 

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM