Scanner輸入的問題

2022-10-08 18:36:16 字數 1283 閱讀 2078

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主要提供了兩...