Rumah >Java >javaTutorial >Mengapa Pengimbas Java Saya Melemparkan InputMismatchException Selepas Input Berganda Betul?
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!