使用nextInt()接受鍵盤(pán)輸入時(shí)必須注意換行符的輸入

int option = in.nextInt();
in.nextLine();  //**
if (option == 0) {
       System.out.println("請(qǐng)輸入個(gè)人信息:");
       System.out.println("姓名:");
       String name = in.nextLine();
       System.out.println("密碼:");
       String password = in.nextLine();
       System.out.println("地址:");
       String address = in.nextLine();
       System.out.println("電話:");
       String phone = in.nextLine();
       System.out.println(name + "," + password + "," + address + "," + phone);
}

問(wèn)題1:Scanner 的next()或nextInt()與nextLine()連續(xù)調(diào)用時(shí)出現(xiàn)的問(wèn)題

nextInt()不會(huì)讀取換行符;next()劃分每個(gè)元素的標(biāo)準(zhǔn)是:空格、制表符、或者換行符。所有元素均有這三種情況分割開(kāi)來(lái),其所有返回的值均為String類(lèi)型
以上訴代碼為例,nextInt()輸入option值,之后用戶(hù)輸入換行符想要結(jié)束,可是nextInt()方法并不會(huì)讀取換行符,因此換行符被讀取放到了下一個(gè)nextLine()中,nextLine()讀取換行符,直接輸入結(jié)束,因此若沒(méi)有**行的nextLine()方法,輸入的姓名name值將會(huì)是空(“”)

問(wèn)題1:姓名無(wú)法輸入,結(jié)束了

解決辦法:在next()或nextInt()后面加一行nextLine()用于讀取換行符

問(wèn)題2:Exception in thread "main" java.util.InputMismatchException

普遍情況下,這種問(wèn)題也是出現(xiàn)了問(wèn)題1中相似的問(wèn)題,導(dǎo)致后面的輸入直接讀取了前一個(gè)next()或者nextInt()的換行符,導(dǎo)致輸入不匹配報(bào)錯(cuò)
解決辦法:在next()或nextInt()后面加一行nextLine()用于讀取換行符

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容