在 Java 中检查输入是否为整数

Rashmi Patidar 2023年10月12日
  1. 使用 Java 中的 hasNextInt 方法检查输入是否为整数
  2. 使用 try...catch 块检查数字是否为整数
在 Java 中检查输入是否为整数

问题指出,我们需要检查 Java 语言中的输入是否为整数。

使用 Java 中的 hasNextInt 方法检查输入是否为整数

System 是具有静态方法和字段的类。我们永远不能实例化它的对象。in 对象是标准输入流。该流已经打开,可以提供输入数了。

hasNextMethod 存在于 Scanner 类中,如果此扫描程序输入中的下一个标记可以被评估为 int 值,则返回 true。如果关闭了扫描程序对象,则该方法将抛出 IllegalStateException

package checkInputIsInt;

import java.util.Scanner;

public class CheckIntegerInput {
  public static void main(String[] args) {
    System.out.print("Enter the number: ");
    Scanner scanner = new Scanner(System.in);
    if (scanner.hasNextInt()) {
      System.out.println("The number is an integer");
    } else {
      System.out.println("The number is not an integer");
    }
  }
}

在第一行中,使用控制台输入从用户那里获取输入。由于输入的文本是数字,因此该数字是要打印的整数。

Enter the number: 1
The number is an integer

由于输入的文本不是数字,因此将打印 else 条件语句。

Enter the number: Hi
The number is not an integer

使用 try...catch 块检查数字是否为整数

在下面的代码块中,我们使用 Scanner 类从控制台获取用户输入。Scanner 类具有 next 方法。如果没有更多可用的令牌,则抛出 NoSuchElementException,如果关闭此 Scanner,则抛出 IllegalStateException

public class CheckIntegerInput {
  public static void main(String[] args) {
    System.out.print("Enter the number : ");
    Scanner scanner = new Scanner(System.in);
    try {
      Integer.parseInt(scanner.next());
      System.out.println("The number is an integer");
    } catch (NumberFormatException ex) {
      System.out.println("The number is not an integer ");
    }
  }

如果数字是整数,则上面的代码将在 try 块中显示该语句。如果该方法从其抛出 Exception,则将执行 catch 块中存在的语句;如果无法将字符串转换为数字类型之一,则将抛出 NumberFormatException

上面代码的输出类似于上面给出的第一个示例代码中的输出。

作者: Rashmi Patidar
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

相关文章 - Java Integer