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
Lepaskan: 2024-12-09 06:15:16
asal
1022 orang telah melayarinya

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();
Salin selepas log masuk

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);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan