Rumah >Java >javaTutorial >Mengapa Pengimbas Java Saya Melemparkan InputMismatchException Selepas Input Berganda Betul?

Mengapa Pengimbas Java Saya Melemparkan InputMismatchException Selepas Input Berganda Betul?

Patricia Arquette
Patricia Arquetteasal
2024-12-09 14:02:121025semak imbas

Why Does My Java Scanner Throw an InputMismatchException After Correct Double Input?

Nilai berganda pengimbas - InputMismatchException

Soalan:
Apabila menggunakan Pengimbas untuk membaca nilai berganda dalam Java , mengapa ia membuang InputMismatchException selepas input yang betul ialah disediakan?

Punca:
Pengecualian berlaku apabila input tidak sepadan dengan jenis data yang dijangkakan, biasanya disebabkan oleh ketidakpadanan setempat.

Penyelesaian :
Untuk menyelesaikan isu, nyatakan Tempat semasa membuat Pengimbas objek:

Scanner scanner = new Scanner(System.in).useLocale(Locale.US);

Penjelasan:
Setiap tempat mempunyai set pemisah perpuluhan dan ribuan sendiri. Sebagai contoh, di tempat AS, pemisah perpuluhan ialah noktah ('.') manakala dalam kebanyakan tempat di Eropah, ia adalah koma (,).

Apabila mencipta objek Pengimbas tanpa menyatakan tempat, Java menggunakan tempat sistem lalai. Jika tempat lalai menggunakan koma sebagai pemisah perpuluhan dan input dimasukkan dengan noktah, Pengimbas cuba membaca input sebagai integer, menghasilkan InputMismatchException.

Dengan menentukan tempat AS, kami memastikan bahawa Pengimbas menjangkakan noktah sebagai pemisah perpuluhan dan membaca input dengan betul sebagai nilai berganda.

Atas ialah kandungan terperinci Mengapa Pengimbas Java Saya Melemparkan InputMismatchException Selepas Input Berganda Betul?. 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