2021/9/29-java中next系列方法


next系列的方法,他們的作用都是從鍵盤中接收數據。當程序執行到他們的時候,在命令行中就開始等待鍵盤輸入了,而且要注意的是,這一系列方法的結束標志都是’\n’ 也就是回車(只有回車是終止標志,tab不是),他們從鍵盤中接收輸入的內容,都是讀到回車之后結束方法的調用。這幾個方法都是不會讀入最后的那個回車\n的。
一,next()方法
next()不光是在接收鍵盤輸入的內容,而且還是在進行掃描分割。比如next()默認的分隔符時空格,程序第一次執行到next()則開始從鍵盤輸入,它會一直接收從鍵盤中打入的內容直到讀取到回車,此回車並不會被讀取鍵盤中輸入的內容就放入了緩存區,這里我們再引入一個光標(cursor)的概念,在匯編中我們學過電腦就是通過光標一點點讀取內容的。光標指向哪里,就讀哪一個字符,當從鍵盤中輸入完內容之后,next()方法開始對輸入進來的內容進行掃描分割,光標從輸入的內容最開始開始向后掃描,就是光標一點點地向后移動。當光標掃描到第一個分隔符(默認是空格)停止掃描,會創建一個String類的對象,里面存儲的就是掃描的內容(不包含空格分隔符)返回創建的String對象的引用給n,然后輸出了n字符串
但是要注意,當前光標還在之前鍵盤輸入內容的行中,光標后面還有內容沒有讀取,所以當循環又執行到了next()方法后,計算機是不會再從鍵盤中讀取數據的,因為當前光標還指向着字符。所以當再次到next()方法后,會繼續從光標的位置掃描,但是后面全都是空格,next()如果沒有掃描讀入非空格或非回車字符是不會創建String對象並返回的。所以光標會繼續向后掃描,並不會結束next調用向下執行輸出,然后當掃描到第一個非空格字符,過程和之前就一樣了
后面就都一樣了,當光標已經掃完了所有的字符后,就會讀取輸出最后一個字符之后,當前光標的位置就又是空了,然后再執行到next()方法時,就又可以從鍵盤中輸入數據了
二,nextLine()方法
nextLine():讀取輸入,包括單詞之間的空格和除回車以外的所有符號(即。它讀到行尾)。讀取輸入后,nextLine()將光標定位在下一行。所以它和next()的區別就是它沒有分隔符,直接掃描全部的鍵盤輸入內容,並創建對象進行將其引用返回
三,nextInt()方法
  nextInt() 是取next() 然后把字符串解析成一個int數字。
它本質是調用了next()方法,然后將next()方法返回的字符串再解析成int型數字返回。
  hasNextInt() 是判斷下次調用next()時否可以得到一個可以安全解析成int的字符串。下一個next()的返回值可以解析為一個數字,即符合數字的格式,那么返回true。注意當下一個字符串不能被解析成數字是,這個方法並不會返回false。
  由上面的解釋可以發現nextInt和next()是很像的,它也是有分隔符的概念,過程和next()都一樣,只是它是把得到的字符串給解析成Int返回,而且只能是數字的字符串,即可以解析成數字的字符串才能調用成功,否則會有異常。



免責聲明!

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



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