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

Mengapa Saya Mendapat NoSuchElementException Apabila Menggunakan NextInt() Pengimbas?

DDD
DDDasal
2024-11-16 06:26:03423semak imbas

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();

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();

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!

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