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()用于讀取換行符