はじめに
Java アプリケーションを開発する際、ユーザー入力を検証することは非常に重要なタスクです。この実験(Lab)では、与えられた入力が有効な整数であるかどうかをチェックするための 3 つの一般的な方法を説明します。
Integer.parseInt()メソッドを使用するScanner.hasNextInt()メソッドを使用するCharacter.isDigit()メソッドを使用する
各メソッドを段階的に実装し、その違いと使用事例を理解していきます。
Java アプリケーションを開発する際、ユーザー入力を検証することは非常に重要なタスクです。この実験(Lab)では、与えられた入力が有効な整数であるかどうかをチェックするための 3 つの一般的な方法を説明します。
Integer.parseInt() メソッドを使用するScanner.hasNextInt() メソッドを使用するCharacter.isDigit() メソッドを使用する各メソッドを段階的に実装し、その違いと使用事例を理解していきます。
整数検証メソッドを実装するために、新しい Java ファイルを作成しましょう。
/home/labex/project ディレクトリにいることを確認します。pwd
CheckInputInteger.java という名前の新しい Java ファイルを作成します。touch CheckInputInteger.java
import java.util.Scanner;
public class CheckInputInteger {
public static void main(String[] args) {
// ここにメソッド呼び出しを追加します
}
}

Integer.parseInt() メソッドは、文字列を整数に変換しようとします。変換に失敗した場合、NumberFormatException をスローします。この動作を利用して、整数を検証できます。
CheckInputInteger.java ファイルに追加します。// CheckInputInteger クラス内にこのメソッドを追加します
public static void checkUsingParseInt(String input) {
try {
// 入力文字列を整数にパースしようとします
Integer.parseInt(input);
System.out.println(input + " is a valid integer");
} catch (NumberFormatException e) {
// パースに失敗した場合、入力は有効な整数ではありません
System.out.println(input + " is not a valid integer");
}
}
main メソッドを更新します。// この実装をテストするために main メソッドを修正します
public static void main(String[] args) {
// テストケース
checkUsingParseInt("123"); // 有効な整数
checkUsingParseInt("12.34"); // 整数ではありません
checkUsingParseInt("abc"); // 整数ではありません
}
import java.util.Scanner;
public class CheckInputInteger {
// クラス内でメソッドを定義します
public static void checkUsingParseInt(String input) {
try {
// 入力文字列を整数にパースしようとします
Integer.parseInt(input);
System.out.println(input + " is a valid integer");
} catch (NumberFormatException e) {
// パースに失敗した場合、入力は有効な整数ではありません
System.out.println(input + " is not a valid integer");
}
}
public static void main(String[] args) {
// テストケース
checkUsingParseInt("123"); // 有効な整数
checkUsingParseInt("12.34"); // 整数ではありません
checkUsingParseInt("abc"); // 整数ではありません
}
}
javac CheckInputInteger.java
java CheckInputInteger
次のような出力が表示されるはずです。
123 is a valid integer
12.34 is not a valid integer
abc is not a valid integer

Scanner クラスは、入力の次のトークンが整数として解釈できるかどうかをチェックする hasNextInt() メソッドを提供します。このメソッドは、コンソールからユーザー入力を読み取る場合に特に役立ちます。
CheckInputInteger.java ファイルの CheckInputInteger クラス内に、次のメソッドを追加します。public static void checkUsingScanner(String input) {
Scanner scanner = new Scanner(input);
if (scanner.hasNextInt()) {
System.out.println(input + " is a valid integer");
} else {
System.out.println(input + " is not a valid integer");
}
scanner.close();
}
main メソッドを更新します。public static void main(String[] args) {
// 前のテストケース
checkUsingParseInt("123");
checkUsingParseInt("12.34");
checkUsingParseInt("abc");
// 新しいテストケース
checkUsingScanner("456"); // 有効な整数
checkUsingScanner("-789"); // 有効な整数
checkUsingScanner("12.34"); // 整数ではありません
}
javac CheckInputInteger.java
java CheckInputInteger
次のような出力が表示されるはずです。
456 is a valid integer
-789 is a valid integer
12.34 is not a valid integer
これは、Scanner.hasNextInt() メソッドが有効な整数と無効な整数を正しく識別することを示しています。

Character.isDigit() メソッドは、文字が数字であるかどうかをチェックします。このメソッドを使用して、入力文字列の各文字をチェックすることにより、整数を検証できます。
CheckInputInteger.java ファイルに、次のメソッドを追加します。public static void checkUsingIsDigit(String input) {
boolean isValid = true;
// 最初の文字をチェックして負の数を処理します
int startIndex = (input.charAt(0) == '-') ? 1 : 0;
// 各文字をチェックします
for (int i = startIndex; i < input.length(); i++) {
if (!Character.isDigit(input.charAt(i))) {
isValid = false;
break;
}
}
if (isValid) {
System.out.println(input + " is a valid integer");
} else {
System.out.println(input + " is not a valid integer");
}
}
main メソッドを更新します。public static void main(String[] args) {
// 前のテストケース
checkUsingParseInt("123");
checkUsingParseInt("12.34");
checkUsingParseInt("abc");
checkUsingScanner("456");
checkUsingScanner("-789");
checkUsingScanner("12.34");
// 新しいテストケース
checkUsingIsDigit("789"); // 有効な整数
checkUsingIsDigit("-123"); // 有効な整数
checkUsingIsDigit("12.34"); // 整数ではありません
}
javac CheckInputInteger.java
java CheckInputInteger
次のような出力が表示されるはずです。
789 is a valid integer
-123 is a valid integer
12.34 is not a valid integer

この実験(Lab)では、Java で整数入力を検証するための 3 つの異なる方法を探求しました。
Integer.parseInt() メソッドScanner.hasNextInt() メソッドCharacter.isDigit() メソッド各メソッドには、それぞれの利点とユースケースがあります。 parseInt() メソッドは、単純な文字列から整数への変換に適しており、Scanner.hasNextInt() はユーザー入力を読み取るのに優れており、Character.isDigit() は検証プロセスを最も細かく制御できます。
これらの検証手法は、ユーザー入力を安全かつ効果的に処理できる、堅牢な Java アプリケーションを開発するために不可欠です。