【Java】文字列が英字のみかを判定する方法

今回は、Javaを使用して文字列が英字(アルファベット)で構成されているかどうかをチェックする方法について解説します。プログラミング初心者の方でもわかりやすいように、いくつかの方法を紹介しますので、ぜひ参考にしてください。

正規表現を使用する方法

正規表現を使って文字列が英字のみで構成されているかをチェックする方法です。正規表現はパターンマッチングのための強力なツールで、多くのプログラミング言語でサポートされています。

public class Main {
    public static void main(String[] args) {
        String input = "HelloWorld";

        if (input.matches("[a-zA-Z]+")) {
            System.out.println("The string contains only alphabetic characters.");
        } else {
            System.out.println("The string contains non-alphabetic characters.");
        }
    }
}

matchesメソッドは、文字列が正規表現にマッチするかどうかをチェックします。[a-zA-Z]+は英字の1回以上の繰り返しを意味します。

ループとCharacterクラスを使用する方法

次に、ループを使用して各文字が英字かどうかをチェックする方法です。こちらは、より基本的なアプローチですが、理解しやすいです。

public class Main {
    public static void main(String[] args) {
        String input = "HelloWorld";
        boolean isAlphabetic = true;

        for (int i = 0; i < input.length(); i++) {
            if (!Character.isLetter(input.charAt(i))) {
                isAlphabetic = false;
                break;
            }
        }

        if (isAlphabetic) {
            System.out.println("The string contains only alphabetic characters.");
        } else {
            System.out.println("The string contains non-alphabetic characters.");
        }
    }
}

Character.isLetterメソッドは、指定された文字が文字かどうかをチェックします。この方法は、文字ごとにチェックを行うため、理解しやすいです。

Java 8のStreamを使用する方法

Java 8以降では、ストリームを使って簡潔に書くこともできます。こちらの方法は、モダンなJavaの書き方を学ぶのに適しています。

import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        String input = "HelloWorld";
        
        boolean isAlphabetic = input.chars()
                                    .allMatch(Character::isLetter);

        if (isAlphabetic) {
            System.out.println("The string contains only alphabetic characters.");
        } else {
            System.out.println("The string contains non-alphabetic characters.");
        }
    }
}

charsメソッドは、文字列を文字コードのストリームに変換し、allMatchメソッドを使用してすべての文字が文字であるかをチェックします。

まとめ

以上、Javaで文字列が英字で構成されているかをチェックする方法を紹介しました。正規表現を使った方法、ループを使った方法、そしてJava 8のストリームを使った方法、それぞれに利点がありますので、用途に応じて適切な方法を選んでください。