Rumah > Java > javaTutorial > Bagaimana untuk Mengelakkan `NoSuchElementException` Apabila Menggunakan `Pengimbas` Java?

Bagaimana untuk Mengelakkan `NoSuchElementException` Apabila Menggunakan `Pengimbas` Java?

Patricia Arquette
Lepaskan: 2024-12-04 22:59:12
asal
640 orang telah melayarinya

How to Avoid `NoSuchElementException` When Using Java's `Scanner`?

Menyahpepijat NoSuchElementException dalam Java

Apabila menghadapi "NoSuchElementException" semasa menggunakan kelas Pengimbas Java, ia menunjukkan percanggahan antara input yang disediakan dan jangkaan kelas. Ralat berlaku apabila Pengimbas cuba mendapatkan nilai tetapi tiada satu pun ditemui.

Pertimbangkan coretan kod berikut:

import java.util.Scanner;

public class Addition {
  public static void main(String[] args) {
    Scanner input = new Scanner(System.in);

    int number1, number2, sum;

    System.out.print("Enter First Integer: ");
    number1 = input.nextInt();

    System.out.print("Enter Second Integer: ");
    number2 = input.nextInt();

    sum = number1 + number2;
    System.out.printf("Sum is %d\n", sum);
  }
}
Salin selepas log masuk

Jika pengguna memasukkan hanya satu integer dan menekan enter sebelum memasukkan kedua, ia akan membuang a NoSuchElementException.

Penyelesaian

Untuk menyelesaikan isu ini, semak ketersediaan integer lain sebelum membacanya. Berikut ialah versi kod yang diubah suai:

if (input.hasNextInt()) {
  number1 = input.nextInt();
} else {
  // Handle input error or set number1 to a default value
}
Salin selepas log masuk

Dengan memasukkan semakan ini, kod memastikan ia hanya membaca integer apabila ada, menghalang pengecualian.

Alternatif Pilihan

Pendekatan lain ialah menggunakan kaedah hasNextLine() untuk menyemak sama ada terdapat sebarang input lanjut dan kemudian panggil nextLine() untuk mengosongkan penimbal sebelum cuba mendapatkan integer lain.

Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan `NoSuchElementException` Apabila Menggunakan `Pengimbas` Java?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan