Javaで文字列がアルファベットのみか判定する方法【2つの手法を解説】
Javaで文字列がアルファベット(英字)のみで構成されているかを検証するには、大きく分けて2つの方法があります。1つは、文字列内の各文字を英字(大文字・小文字)と1つずつ比較する方法、もう1つは正規表現を使う方法です。
方法1:各文字を1つずつ比較して検証する
次のプログラムは、ユーザーから文字列(名前)を入力として受け取り、含まれる各文字が英字(a〜z、A〜Z)の範囲内にあるかを順番にチェックすることで、入力が適切な名前かどうかを判定します。
import java.util.Scanner;
public class ValidatingString {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter your name: ");
String str = sc.next();
boolean flag = true;
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (!(ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z')) {
flag = false;
}
}
if(flag)
System.out.println("Given string is a proper name.");
else
System.out.println("Given string is not a proper name.");
}
}
実行結果1
Enter your name: krishna45 Given string is not a proper name.
実行結果2
Enter your name: kasyap Given string is a proper name.
この例では、数値を含む「krishna45」は不正な名前として判定され、英字のみの「kasyap」は適切な名前として判定されています。
方法2:正規表現を使って検証する
次のプログラムは、正規表現「^[a-zA-Z]*$」を使って、入力された文字列(名前)が適切な名前かどうかを判定します。Stringクラスのmatches()メソッドに正規表現を渡すことで、文字列全体がパターンに一致するかどうかを簡潔に確認できます。
import java.util.Scanner;
public class ValidatingString2 {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter your name: ");
String str = sc.next();
if((!str.equals(null))&&str.matches("^[a-zA-Z]*$"))
System.out.println("Given string is a proper name.");
else
System.out.println("Given string is not a proper name.");
}
}
実行結果1
Enter your name: krishna45 Given string is not a proper name.
実行結果2
Enter your name: kasyap Given string is a proper name.
補足:Character.isLetter()メソッドについて
Javaには、文字が英字かどうかを判定するための標準APIとしてCharacter.isLetter()が用意されており、これを使えば範囲比較をより簡潔に記述できます。ただし、isLetter()はUnicode上のさまざまな言語の文字も「文字」として判定するため、ASCII英字(a〜z、A〜Z)のみを厳密に検証したい場合は、本記事で紹介した範囲比較や正規表現による方法が確実です。
-
JavaでJTableをフィルタリングする方法!TableRowSorterとsetRowFilter()の使い方を解説
JTableは、テーブルを柔軟に作成・表示できるSwingのコンポーネントです。テーブルの内容を扱うためのメソッドはTableModelインターフェースで定義されており、実際にはAbstractTableModelクラスを継承して独自のテーブルモデルを実装するのが一般的です。また、JTableではsetCellEditor()メソッドにTableCellEditorインターフェースの実装オブジェクトを渡すことで、セルの編集機能を追加することもできます。 テーブルの表示内容をフィルタリング(絞り込み)するには、TableRowSorterクラスのsetRowFilter()メソッドを使用します。
-
JavaのJToggleButton実装ガイド:ON/OFF切替ボタンの作り方を解説
JToggleButtonとは JToggleButtonはAbstractButtonを拡張したクラスで、クリックするたびにONとOFFが切り替わるトグルボタンを実現するために使用されます。通常のボタンと異なり、押した状態を保持できるのが特徴です。 JToggleButtonの主な特徴 最初に押されたときは押し込まれた状態のままとなり、もう一度押してはじめて元の状態(押されていない状態)に戻ります。 ボタンが押されるたびにActionEventが発生します。 さらに、JToggleButtonはItemEventも発生させることができます。このイベントは、選択状態という概念を持つコンポー