1、若均接收鍵盤介入的整型時:【回車鍵盤入下一行內容時,比較普通且正常,未出現報錯等意外】
public static void main(string args)
輸出結果:
3、先整型後字串時的混合情況【回車鍵入姓名資訊階段出現問題】
public輸出結果:static
void
main(string args)
原因分析:
均為整型時【.nextint()】,鍵盤鍵入的整型結束後,按回車會進入換行,進行下一行內容的輸入,故不存在問題
均為字串或者先整型後字串時的混合情況時【.nextline()】,應該清楚的知道回車也是字串啊,會被誤以為是個字串,導致bug的出現,比如在**3中
輸入性別時直接回車,會出現如下結果,但若是鍵入第2種正常情況的字串型別外加回車不會出現問題!!因為輸入一串字元後,.nextline()會吸收尾端這個回車字元,
將其視為結束符,游標會移至下一行!
如何解決上述出現的bug呢?【回車被視為字串型別,導致姓名輸入不了!】
方法1:面對先整型後字串型別,先接收鍵盤鍵入的整型後多寫一行** sc.nextline();【作用是接收鍵入的單一回車換行,這樣後續輸入字串型別不會受影響】
public輸出結果:static
void
main(string args)
方法2:鍵盤鍵入的全用字串型別接收,需要整型時字串轉換為整型就ok,比如用字串型別的name變數代替整型接收,再重新轉換為整型或者重新賦值覆蓋【原來存放的值】
public輸出結果:static
void
main(string args)
Scanner輸入不進去
system.out.println 輸入年齡 int a sc.nextint system.out.println 姓名 string b sc.nextline system.out.println 性別 string c sc.nextline 上面這樣寫會出錯,年齡之後的無法輸入 解決辦法...
使用Scanner獲取鍵盤輸入
使用scanner類可以很方便地便獲取使用者的鍵盤輸入,scanner是乙個基於正規表示式的文字掃瞄器,它可以從檔案 輸入流 字串中解析出基本型別值和字串值。scanner類提供了多個構造器,不同的構造器可接受檔案 輸入流 字串作為資料,用於從檔案 輸入流 字串中解析資料。scanner主要提供了兩...
使用Scanner獲取鍵盤輸入
使用scanner類可以很方便地便獲取使用者的鍵盤輸入,scanner是乙個基於正規表示式的文字掃瞄器,它可以從檔案 輸入流 字串中解析出基本型別值和字串值。scanner類提供了多個構造器,不同的構造器可接受檔案 輸入流 字串作為資料,用於從檔案 輸入流 字串中解析資料。scanner主要提供了兩...