在 Java 中清除 Scanner

Rupam Yadav 2024年2月15日
  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