溫馨提示×

java的scanner如何處理非法字符

小樊
85
2024-09-24 01:16:03
欄目: 編程語言

Java的Scanner類在處理非法字符時,通常會遇到以下幾種情況:

  1. 輸入流結(jié)束(EOF):當(dāng)輸入流到達(dá)末尾時,Scanner會拋出NoSuchElementException。這意味著你已經(jīng)到達(dá)了輸入的結(jié)尾,無法再讀取更多的字符。

  2. 非整數(shù)輸入:當(dāng)你嘗試使用nextInt()、nextLong()等方法讀取整數(shù)時,如果輸入了非整數(shù)字符,Scanner會拋出InputMismatchException。

  3. 非數(shù)字字符:當(dāng)你嘗試使用nextDouble()、nextFloat()等方法讀取浮點數(shù)時,如果輸入了非數(shù)字字符,Scanner會拋出InputMismatchException。

  4. 空白字符:當(dāng)你嘗試讀取下一個token時,如果輸入了空白字符(如空格、制表符或換行符),Scanner會自動忽略它們。

要處理這些異常,你可以使用try-catch語句捕獲異常并采取相應(yīng)的措施。例如:

import java.util.InputMismatchException;
import java.util.NoSuchElementException;
import java.util.Scanner;

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

        try {
            System.out.println("請輸入一個整數(shù):");
            int num = scanner.nextInt();
            System.out.println("你輸入的整數(shù)是:" + num);
        } catch (InputMismatchException e) {
            System.out.println("輸入錯誤,請輸入一個整數(shù)!");
        } catch (NoSuchElementException e) {
            System.out.println("輸入流結(jié)束。");
        } finally {
            scanner.close();
        }
    }
}

在這個例子中,我們使用try-catch語句捕獲了可能的InputMismatchException和NoSuchElementException異常。如果發(fā)生異常,程序會輸出相應(yīng)的錯誤信息。最后,我們使用finally語句確保Scanner對象被正確關(guān)閉。

0