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