在 Java 中清除 Scanner

Rupam Yadav 2023年10月12日
  1. Java 使用 nextLine() 清除 Scanner 的方法
  2. 在 Java 中建立一個新的 Scanner 物件來清除 Scanner
在 Java 中清除 Scanner

Java 中的 Scanner 類經常被用來接收輸入或輸出。我們建立一個 Scanner 類的物件來使用它的功能。

我們不能使用 Scannerclose() 方法,因為一旦 Scanner 被這個方法關閉,我們就不能再接受輸入,因為輸入流已經被關閉。

在 Java 中還有其他的方法來清除 Scanner,下面以例項來說明這些方法。

Java 使用 nextLine() 清除 Scanner 的方法

為了清除 Scanner 並在不破壞它的情況下再次使用它,我們可以使用 Scanner 類的 nextLine() 方法,它掃描當前行,然後將 Scanner 設定為下一行,以便在新行上執行任何其他操作。

在下面的例子中,在 while 迴圈中,我們要求使用者輸入一個資訊,並使用 hasNextInt(radix) 檢查它是否是一個有效的二進位制。如果是有效的二進位制,那麼就會儲存在 binary 變數中,如果不是二進位制值,那麼就會列印出一條資訊,要求使用者輸入一個有效的二進位制值。

在這種情況下,如果我們不清除 Scanner,迴圈將永遠不會結束。如果值不是二進位制的,那麼 Scanner 就應該轉到新的行去接受新的輸入。這就是為什麼 nextLine() 用來跳過當前行並轉到新行的原因。

import java.util.Scanner;

public class ClearScanner {
  public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    int binary = 0;
    int radix = 2;

    while (binary == 0) {
      System.out.print("Please input a valid binary: ");

      if (input.hasNextInt(radix)) {
        binary = input.nextInt(radix);
      } else {
        System.out.println("Not a Valid Binary");
      }
      input.nextLine();
    }

    System.out.print("Converted Binary: " + binary);
  }
}

輸出:

Java 清除 Scanner

在 Java 中建立一個新的 Scanner 物件來清除 Scanner

另一種清除 Scanner 的方法是,當使用者輸入一個二進位制值以外的值時,建立一個新的 Scanner 物件。這種方法的工作原理是,當建立一個新物件時,現有的 Scanner 物件被清除,並開始一個新的輸入流。

import java.util.Scanner;

public class ClearScanner {
  public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    int binary = 0;
    int radix = 2;

    while (binary == 0) {
      System.out.print("Please input a valid binary: ");

      if (input.hasNextInt(radix)) {
        binary = input.nextInt(radix);
      } else {
        System.out.println("Not a Valid Binary");
      }

      input = new Scanner(System.in);
    }

    System.out.print("Converted Binary: " + binary);
  }
}

輸出:

Please input a valid binary: 23
Not a Valid Binary
Please input a valid binary: 11101
Converted Binary: 29
作者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

相關文章 - Java Scanner