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
をスローし、このスキャナーが閉じている場合は 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 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