Rumah >Java >javaTutorial >Bagaimana untuk Menyelesaikan InputMismatchException Apabila Membaca Nilai Berganda dengan Pengimbas Java?
Nilai berganda pengimbas - InputMismatchException Diselesaikan
Menghadapi InputMismatchException apabila menggunakan pengimbas untuk membaca nilai berganda adalah isu biasa yang dihadapi oleh pembangun Java. Pengecualian ini berlaku apabila token yang diambil daripada input tidak sepadan dengan jenis data yang dijangkakan atau berada di luar julat untuk jenis tersebut.
Masalah:
Pertimbangkan kod berikut :
double gas, efficiency, distance, cost; Scanner scanner = new Scanner(System.in); System.out.print("Enter the number of gallons of gas in the tank: "); gas = scanner.nextDouble(); System.out.print("Enter the fuel efficiency: "); efficiency = scanner.nextDouble();
Apabila menjalankan kod ini dan memasukkan nilai seperti "5.1" untuk kedua-dua gas dan kecekapan, ia melemparkan InputMismatchException.
Punca:
Tempat lalai yang digunakan oleh pengimbas mungkin tidak sepadan dengan format yang dijangkakan bagi nilai input. Sebagai contoh, dalam tempat yang "," digunakan sebagai pembatas perpuluhan, input seperti "5,1" akan ditafsirkan sebagai nilai berganda yang sah, manakala dalam tempat yang "." digunakan sebagai pembatas, ia tidak akan.
Penyelesaian:
Untuk memintas isu ini, adalah perlu untuk menentukan tempat untuk pengimbas menggunakan useLocale() kaedah.
Scanner scanner = new Scanner(System.in).useLocale(Locale.US);
Dengan menetapkan tempattempat kepada Locale.US, pengimbas akan menjangkakan nilai dalam format AS, di mana "." digunakan untuk pembatas perpuluhan.
Penjelasan:
Kaedah useLocale() membenarkan pembangun mentakrifkan tempat yang digunakan oleh pengimbas untuk menghurai nilai. Ini memastikan bahawa pengimbas menjangkakan nilai dalam format yang betul untuk tempat yang ditentukan.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan InputMismatchException Apabila Membaca Nilai Berganda dengan Pengimbas Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!