Java で入力が整数かどうかを確認する

Rashmi Patidar 2023年10月12日
  1. 入力が整数で Java の hasNextInt メソッドを使用してあるかどうかを確認する
  2. 数値が整数で try...catch ブロックを使用してあるかどうかを確認する
Java で入力が整数かどうかを確認する

この問題は、Java 言語で取得された入力が整数であるかどうかを確認する必要があることを示しています。

入力が整数で Java の hasNextInt メソッドを使用してあるかどうかを確認する

System は、静的メソッドとフィールドを持つクラスです。そのオブジェクトをインスタンス化することはできません。in オブジェクトは標準入力ストリームです。このストリームはすでに開いており、入力データを提供する準備ができています。

hasNextMethodScanner クラスに存在し、このスキャナー入力の次のトークンが 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 をスローし、このスキャナーが閉じている場合は 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 ブロックに存在するステートメントを実行し、文字列を数値タイプの 1つに変換できない場合は 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