【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文字ずつに分割しているため、123
は1
・2
・3
として出力されてしまいます。
今回はisDigitメソッド
の使い方を紹介しました。以上で記事を終わりにします。