HOWTO · Java

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

この記事では、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 をスローします。

上記のコードの出力は、上記の最初のサンプルコードの出力と同様です。