日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Scanner的next,nextint和nextLine的使用总结

發布時間:2025/3/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Scanner的next,nextint和nextLine的使用总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題所在:

java中Scanner類中nextLine()方法與next()或nextInt()聯用時可能出現一個常見的錯誤,那就是當next()或者nextInt(),nextDouble() 、 nextFloat()用在nextLine的前面時。nextLine會把前者的結束符“換行符”作為字符串讀入,進而不需要從鍵盤輸入字符串nextLine已經轉向下一條語句執行

public class Test {public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.println("請輸入一個整數");while(in.hasNextInt()){int num = in.nextInt();System.out.println("請輸入一個字符串");String str = in.nextLine();System.out.println("num="+num+",str="+str);System.out.println("請輸入一個整數");}}} 行結果為:請輸入一個整數1231請輸入一個字符串num=1231,str=請輸入一個整數第二個String類型的參數沒有讀取進來。改用了next()方法

public class Test {public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.println("請輸入一個整數");while(in.hasNextInt()){int num = in.nextInt();System.out.println("請輸入一個字符串");String str = in.next();System.out.println("num="+num+",str="+str);System.out.println("請輸入一個整數");}}} 請輸入一個整數213 jdskals請輸入一個字符串num=213,str=jdskals請輸入一個整數
原因:

next()以忽略空格,Tab,Enter鍵開始,以空格,Tab,Enter鍵作為結束符結束


next()一定要讀取到有效字符后才可以結束輸入,對輸入有效字符之前遇到的空格鍵、Tab鍵,換行符或Enter鍵等結束符,next()方法會自動將其去掉,只有在輸入有效字符之后,next()方法才將其后輸入的空格鍵、Tab鍵或Enter鍵等視為分隔符或結束符。簡單地說,next()查找并返回來自此掃描器的下一個完整標記。完整標記的前后是與分隔模式匹配的輸入信息,所以next方法不能得到帶空格的字符串。
nextLine()方法的結束符只是Enter鍵,即nextLine()方法返回的是Enter鍵之前的所有字符,它是可以得到帶空格的字符串的

修正方法:在next()或nextInt()方法使用Enter鍵之后,填充一個無用的nextLine()

總結

以上是生活随笔為你收集整理的Scanner的next,nextint和nextLine的使用总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。