はじめに
Java アプリケーションを開発する際、ユーザー入力を検証することは非常に重要なタスクです。この実験(Lab)では、与えられた入力が有効な整数であるかどうかをチェックするための 3 つの一般的な方法を説明します。
Integer.parseInt()メソッドを使用するScanner.hasNextInt()メソッドを使用するCharacter.isDigit()メソッドを使用する
各メソッドを段階的に実装し、その違いと使用事例を理解していきます。
Java プロジェクトのセットアップ
整数検証メソッドを実装するために、新しい 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() を使用した整数検証の実装
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() を使用した整数検証の実装
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() を使用した整数検証の実装
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 アプリケーションを開発するために不可欠です。



