【Java】isDigitメソッドで文字が数字かどうか判定する

JavaのCharacterクラスのisDigitメソッドを使って文字が数字かどうかを判定する方法とString型の文字列から全ての数字を抽出する方法についてまとめます。
isDigitメソッドの書式
isDigitメソッドは、以下の様に記述します。
isDigitメソッドの書式例
1Character.isDigit(char ch);引数の文字を比較して数字(0~9のみで構成される)であればture、そうでなければfalseを返します。戻り値の型はboolean型です。
引数はchar型(もしくはint型)のみ適用され、String型やNULLを入れるとコンパイルエラーになります。
似たようなメソッドで、小文字のアルファベットかどうか判定するisLowerCaseメソッドがあります。
メソッドの使用例
isDigitメソッドの使用例をサンプルコードで紹介します。
IsDigitTest1.java
1public class IsDigitTest1 {
2 public static void main(String[] args) {
3
4 // 0,Aがそれぞれ数字かどうか判定する
5 System.out.println("0の数値判定:" + Character.isDigit('0'));
6 System.out.println("Aの数値判定:" + Character.isDigit('A'));
7
8 // 全角数字とひらがなと空文字を判定する
9 System.out.println("0の数値判定:" + Character.isDigit('0'));
10 System.out.println("あの数値判定:" + Character.isDigit('あ'));
11 System.out.println(" の数値判定:" + Character.isDigit(' '));
12 System.out.println(",の数値判定:" + Character.isDigit(','));
13 }
14}実行結果が以下になります。
出力結果
10の数値判定:true
2Aの数値判定:false
30の数値判定:true
4あの数値判定:false
5 の数値判定:false
6,の数値判定:false半角英数字の判定だけではなく、全角の数字や平仮名や空白文字に対しても数字かどうか判定されます。
文字列から全ての数字を検索する方法
通常はchar型の文字だけしか検索できないので、for文を使ってString型の文字列から含まれる全ての数字を検索するプログラムを作成してみます。
サンプルコードを以下に示します。String型をchar型に分割するために、toCharArrayメソッドを使用しています。
IsDigitTest2.java
1public class IsDigitTest2 {
2 public static void main(String[] args) {
3 String str = "abc123def";
4 char[] c = str.toCharArray();
5 int sum = 0;
6 System.out.println("元の文字列:" + str);
7
8 for (int i = 0; i < str.length(); i++) {
9 if (Character.isDigit(c[i])) {
10 System.out.println("数字:" + c[i] + " 場所:" + (i + 1));
11 sum++;
12 }
13 }
14 System.out.println("該当個数:" + sum);
15 }
16}実行結果が以下になります。
出力結果
1元の文字列:abc123def
2数字:1 場所:4
3数字:2 場所:5
4数字:3 場所:6
5該当個数:3文字列から全ての数字を抽出することができました。ただ、文字列を1文字ずつに分割しているため、123は1・2・3として出力されてしまいます。
今回はisDigitメソッドの使い方を紹介しました。以上で記事を終わりにします。