Rumah >Java >javaTutorial >Bagaimana untuk Menyelesaikan InputMismatchException Apabila Membaca Nilai Berganda dengan Pengimbas Java?

Bagaimana untuk Menyelesaikan InputMismatchException Apabila Membaca Nilai Berganda dengan Pengimbas Java?

Susan Sarandon
Susan Sarandonasal
2024-12-09 06:15:161004semak imbas

How to Resolve InputMismatchException When Reading Double Values with Java Scanner?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn