java鍵盤錄入的方法舉例詳解
一,鍵盤錄入涉及到的方法如下:
next()、nextLine()、nextInt()、nextDouble()。
1)next()、nextLine():
可以接受任意數據,但是都會返回一個字符串。
比如:鍵盤錄入abc,那么會把abc看做字符串返回。
鍵盤錄入123,那么會把123看做字符串返回。
代碼示例:
Scanner sc = new Scanner(System.in); String s = sc.next();//錄入的所有數據都會看做是字符串 System.out.println(s);
代碼示例:
Scanner sc = new Scanner(System.in); String s = sc.nextLine();//錄入的所有數據都會看做是字符串 System.out.println(s);
2)nextInt():
只能接受整數。
比如:鍵盤錄入123,那么會把123當做int類型的整數返回。
鍵盤錄入小數或者其他字母,就會報錯。
代碼示例:
Scanner sc = new Scanner(System.in); int s = sc.nextInt();//只能錄入整數 System.out.println(s);
3)nextDouble():
能接收整數和小數,但是都會看做小數返回。
錄入字母會報錯。
代碼示例:
Scanner sc = new Scanner(System.in); double d = sc.nextDouble();//錄入的整數,小數都會看做小數。 //錄入字母會報錯 System.out.println(d);
二,方法底層細節(jié) :
第一個細節(jié):
next(),nextInt(),nextDouble()在接收數據的時候,會遇到空格,回車,制表符其中一個就會停止接收數據。
代碼示例:
Scanner sc = new Scanner(System.in); double d = sc.nextDouble(); System.out.println(d); //鍵盤錄入:1.1 2.2//注意錄入的時候1.1和2.2之間加空格隔開。 //此時控制臺打印1.1 //表示nextDouble方法在接收數據的時候,遇到空格就停止了,后面的本次不接收。
Scanner sc = new Scanner(System.in); int i = sc.nextInt(); System.out.println(i); //鍵盤錄入:1 2//注意錄入的時候1和2之間加空格隔開。 //此時控制臺打印1 //表示nextInt方法在接收數據的時候,遇到空格就停止了,后面的本次不接收。
Scanner sc = new Scanner(System.in); String s = sc.next(); System.out.println(s); //鍵盤錄入:a b//注意錄入的時候a和b之間加空格隔開。 //此時控制臺打印a //表示next方法在接收數據的時候,遇到空格就停止了,后面的本次不接收。
第二個細節(jié):
next(),nextInt(),nextDouble()在接收數據的時候,會遇到空格,回車,制表符其中一個就會停止接收數據。但是這些符號 + 后面的數據還在內存中并沒有接收。如果后面還有其他鍵盤錄入的方法,會自動將這些數據接收。
代碼示例:
Scanner sc = new Scanner(System.in); String s1 = sc.next(); String s2 = sc.next(); System.out.println(s1); System.out.println(s2); //此時值鍵盤錄入一次a b(注意a和b之間用空格隔開) //那么第一個next();會接收a,a后面是空格,那么就停止,所以打印s1是a //但是空格+b還在內存中。 //第二個next會去掉前面的空格,只接收b //所以第二個s2打印出來是b
第三個細節(jié):
nextLine()方法是把一整行全部接收完畢。
代碼示例:
Scanner sc = new Scanner(System.in); String s = sc.nextLine(); System.out.println(s); //鍵盤錄入a b(注意a和b之間用空格隔開) //那么nextLine不會過濾前面和后面的空格,會把這一整行數據全部接收完畢。
三、混用引起的后果
上面說的兩套鍵盤錄入不能混用,如果混用會有嚴重的后果。
代碼示例:
Scanner sc = new Scanner(System.in);//① int i = sc.nextInt();//② String s = sc.nextLine();//③ System.out.println(i);//④ System.out.println(s);//⑤
當代碼運行到第二行,會讓我們鍵盤錄入,此時錄入123。
但是實際上我們錄的是123+回車。
而nextInt是遇到空格,回車,制表符都會停止。
所以nextInt只能接受123,回車還在內存中沒有被接收。
此時就被nextLine接收了。
所以,如果混用就會導致nextLine接收不到數據。
四、結論(如何使用)
鍵盤錄入分為兩套:
- next()、nextInt()、nextDouble()這三個配套使用。
如果用了這三個其中一個,就不要用nextLine()。
- nextLine()單獨使用。
如果想要整數,那么先接收,再使用Integer.parseInt進行類型轉換。
代碼示例:
Scanner sc = new Scanner(System.in); String s = sc.next();//鍵盤錄入123 System.out.println("此時為字符串" + s);//此時123是字符串 int i = sc.nextInt();//鍵盤錄入123 System.out.println("此時為整數:" + i);
Scanner sc = new Scanner(System.in); String s = sc.nextLine();//鍵盤錄入123 System.out.println("此時為字符串" + s);//此時123是字符串 int i = Integer.parseInt(s);//想要整數再進行轉換 System.out.println("此時為整數:" + i);
總結
到此這篇關于java鍵盤錄入的文章就介紹到這了,更多相關java鍵盤錄入內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java?MethodHandles介紹與反射對比區(qū)別詳解
這篇文章主要為大家介紹了Java?MethodHandles介紹與反射對比區(qū)別詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11SpringBoot+MinIO實現(xiàn)文件切片極速詳解
在現(xiàn)代Web應用中,文件上傳是一個常見的需求,尤其是對于大文件的上傳,如視頻、音頻或大型文檔,所以本文就來為大家介紹一下如何使用Spring Boot和MinIO實現(xiàn)文件切片極速上傳技術吧2023-12-12Spring Boot2配置Swagger2生成API接口文檔詳情
這篇文章主要介紹了Spring Boot2配置Swagger2生成API接口文檔詳情,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09詳解Reactor如何優(yōu)雅Exception異常處理
初識響應式編程的時候,除了從命令式的思維方式轉變?yōu)楹瘮凳降木幊谭绞酵?,其中有一個很大的不適應的地方就是在面對異常時該怎么處理。本文將通過Project?Reactor的文檔以及源碼來深入解讀,在reactor中是如何優(yōu)雅地實現(xiàn)這異常處理三板斧,希望對大家有所幫助2023-02-02Spring中配置和讀取多個Properties文件的方式方法
本篇文章主要介紹了Spring中配置和讀取多個Properties文件的方式方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-04-04