解決Java的InputMismatchException異常
一、寫在前面
InputMismatchException異常是輸入不匹配異常,即輸入的值數(shù)據(jù)類型與設(shè)置的值數(shù)據(jù)類型不能匹配。
二、異常的出現(xiàn)原因
在使用Scanner進行輸入時,報出InputMismatchException異常,其代碼如下:
public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("請輸入一個數(shù)字:"); int x=sc.nextInt(); System.out.println("請輸入一個字符串:"); String str=sc.nextLine(); System.out.println("請再輸入同一個數(shù)字:"); int y=sc.nextInt(); }
產(chǎn)生InputMismatchException異常的原因是:nextLine()不能用在nextInt后面
。因為nextLine()方法是返回的是Enter鍵之前的所有字符,在使用了nextInt() 方法之后在其后輸入的空格鍵、Tab鍵或Enter鍵等視為分隔符或結(jié)束符,其仍在緩沖區(qū)內(nèi);若緊接著使用nextLine() ,則nextLine() 自動讀取Enter等作為其結(jié)束符,則無法從鍵盤輸入值,強行輸入會報出InputMismatchException異常。
三、異常的解決
方法一:
我們可以在nextInt()后面加上一個nextLine()用于過濾其后面的Enter等結(jié)束符。
方法二:
我們可以不使用nextLine()方法,直接使用next()方法代替。
其修改代碼如下:
public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("請輸入一個數(shù)字:"); int x=sc.nextInt(); sc.nextLine();//方法一 System.out.println("請輸入一個字符串:"); String str=sc.nextLine();//String str=sc.next();為方法二 System.out.println("請再輸入同一個數(shù)字:"); int y=sc.nextInt(); }
PS:eclipse使用小技巧:
在eclipse中我們可以直接打出 syso后再按住 Alt+/ 就可以直接寫出輸出語句
System.out.println("");
到此這篇關(guān)于解決Java的InputMismatchException異常的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Struts2實現(xiàn)CRUD(增 刪 改 查)功能實例代碼
CRUD是Create(創(chuàng)建)、Read(讀取)、Update(更新)和Delete(刪除)的縮寫,它是普通應(yīng)用程序的縮影。接下來通過本文給大家介紹Struts2實現(xiàn)CRUD(增 刪 改 查)功能實例代碼,感興趣的朋友一起看看吧2016-06-06springboot結(jié)合全局異常處理實現(xiàn)登錄注冊驗證
這篇文章主要介紹了springboot結(jié)合全局異常處理實現(xiàn)登錄注冊驗證,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05idea中將單個java類導(dǎo)出為jar包文件的方法
這篇文章主要給大家介紹了關(guān)于idea中將單個java類導(dǎo)出為jar包文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09