Rumah > Java > javaTutorial > Mengapa Saya Mendapat NoSuchElementException Apabila Menggunakan NextInt() Pengimbas?

Mengapa Saya Mendapat NoSuchElementException Apabila Menggunakan NextInt() Pengimbas?

DDD
Lepaskan: 2024-11-16 06:26:03
asal
420 orang telah melayarinya

Why Am I Getting a NoSuchElementException When Using Scanner's nextInt()?

Scanner's nextInt() Mishap: Memahami NoSuchElementException

Apabila cuba mendapatkan integer menggunakan kaedah Scanner's nextInt(), anda mungkin menghadapi ralat yang ditakuti: NoSuchElementException. Ini timbul apabila tiada lagi integer tersedia untuk mendapatkan semula daripada strim input.

Untuk menentukan puncanya, kami meneliti coretan kod:

Scanner s = new Scanner(System.in);
int choice = s.nextInt(); // Error occurs here
s.close();
Salin selepas log masuk

Kaedah nextInt() menganggap bahawa integer sedang menunggu untuk dibaca, tetapi dalam kes kami, mungkin tidak ada satu. Untuk mengelakkan ralat ini, kami boleh memanfaatkan kaedah hasNextXXXX() yang disediakan oleh Pengimbas. Kaedah ini mengesahkan ketersediaan jenis data yang sesuai, memastikan bahawa input sedia untuk diambil semula.

Dalam senario khusus ini, kami boleh membetulkan isu tersebut dengan menggunakan hasNextInt():

Scanner s = new Scanner(System.in);
int choice = 0;

if (s.hasNextInt()) {
    choice = s.nextInt();
}

s.close();
Salin selepas log masuk

Semakan hasNextInt() memastikan integer wujud sebelum cuba mendapatkannya dengan nextInt(). Ini menghapuskan kemungkinan NoSuchElementException.

Jadi, ingat, apabila berurusan dengan kaedah nextInt() Scanner, sentiasa gunakan hasNextInt() untuk menjamin bahawa integer sedang menunggu untuk digunakan.

Atas ialah kandungan terperinci Mengapa Saya Mendapat NoSuchElementException Apabila Menggunakan NextInt() Pengimbas?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan