Rumah > Java > javaTutorial > Mengapa Saya Mendapat 'NoSuchElementException' Apabila Menggunakan Kelas Pengimbas Java?

Mengapa Saya Mendapat 'NoSuchElementException' Apabila Menggunakan Kelas Pengimbas Java?

Patricia Arquette
Lepaskan: 2024-12-04 02:45:11
asal
1283 orang telah melayarinya

Why Am I Getting a

Menyelesaikan masalah "NoSuchElementException" dalam Java.Util.Scanner

Ralat "NoSuchElementException" dalam Java biasanya disebabkan oleh percubaan untuk membaca daripada sumber input tertutup atau kosong menggunakan kelas Pengimbas. Dalam kes anda, pengecualian ini berlaku apabila anda cuba membaca integer kedua daripada pengguna (baris 17 dalam kod anda).

Untuk nyahpepijat isu ini, mari kita periksa kelas Pengimbas secara terperinci:

Kelas Pengimbas

Kelas Pengimbas membenarkan anda membaca data teks daripada sumber, seperti System.in (konsol). Kaedahnya membolehkan anda mengekstrak pelbagai jenis data, termasuk integer (nextInt()), daripada sumber.

Dalam kod anda, anda mencipta objek Pengimbas yang dipanggil "input" untuk membaca input daripada konsol. Anda kemudian cuba membaca dua nilai integer ke dalam pembolehubah nombor1 dan nombor2.

Analisis Ralat

Ralat "NoSuchElementException" menunjukkan bahawa objek Pengimbas menjangkakan untuk mencari integer pada baris input seterusnya tetapi tidak dapat mencari satu. Ini boleh berlaku atas beberapa sebab:

  • Tiada Input Integer: Pastikan anda sebenarnya telah memasukkan dua integer pada baris berasingan dalam konsol.
  • Jenis Input Salah: Periksa semula sama ada input yang anda berikan adalah jenis int.
  • Pengimbas Ditutup: Pastikan Pengimbas tidak ditutup sebelum cuba membaca input.

Cadangan Penyelesaian

Untuk menyelesaikan isu ini, pertimbangkan untuk menambah semakan untuk mengesahkan bahawa Pengimbas mempunyai integer lain untuk dibaca sebelum cuba mengekstrak ia:

if (input.hasNextInt()) {
  number2 = input.nextInt(); 
} else {
  // Handle the case where no integer is found
  // (e.g., display an error message or set number2 to a default value)
}
Salin selepas log masuk

Dengan memasukkan cek ini, anda boleh menentukan sama ada terdapat integer lain yang tersedia sebelum cuba membacanya. Jika tiada, anda boleh mengambil tindakan yang sewajarnya, seperti memaparkan mesej ralat atau menetapkan nombor2 kepada nilai lalai.

Atas ialah kandungan terperinci Mengapa Saya Mendapat 'NoSuchElementException' Apabila Menggunakan Kelas Pengimbas Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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