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

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

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文字ずつに分割しているため、123123として出力されてしまいます。


今回はisDigitメソッドの使い方を紹介しました。以上で記事を終わりにします。

参考文献