【Java】文字列が数値かどうか判定する方法

Java

今回の記事ではJavaのString型の文字列が数値であるかどうかを判定する方法について解説していきます。

判定する方法には様々な方法がありますが、今回は正規表現を使う方法とCharacterのisDegitメソッドを利用した方法を実際のコードを用いて解説します。
ぜひ最後まで読んでいってください!

「独学は不安だけどプログラミングスクールは高くて手が出せない」と考えているあなたにNeo Collegeがおすすめです!
通常プログラミングスクールが十数万〜数十万円するところ、Neo College69,800円と圧倒的な低価格で受講することができます!
気になった方は一度公式サイトをチェックしてみてくださいね。

正規表現を使って文字列が数値かどうか判定する

まずは正規表現を使って文字列が数値かどうか判定する方法について解説していきます。
正規表現を使う方法では整数だけ許容する方法や正の数だけ許容する方法など様々な方法がありますが、今回は正と負の整数である場合にtrueを返すようなチェックをしていきます。

サンプルコード

import java.util.regex.Pattern;

public class IsNumber {

	public static void main(String[] args) {
		
		// 判定対象の文字列
		String text1 = "123a";
		String text2 = "1234";
		
		// 検証結果を格納する変数
		boolean result = true;
		
		// text1をチェックして結果を取得
		result = checkString(text1);
		System.out.println("text1: " + result);
		
		// text2をチェックして結果を取得
		result = checkString(text2);
		System.out.println("text2: " + result);
	}
	
	// 引数で受け取った文字列が数値かどうか正規表現で判定するメソッド
	public static boolean checkString(String text) {
		
		boolean res = true;
		
		Pattern pattern = Pattern.compile("^[0-9]+$|-[0-9]+$");
		res = pattern.matcher(text).matches();
		
		return res;
	}
}

実行結果

text1: false
text2: true

今回は正と負の整数のみtrueを返す判定です。
判定したい内容によって正規表現を変更する必要があります。

Character.isDigitメソッドを使って文字列が数値かどうか判定する

次にCharacter.isDigitメソッドを使って文字列が数値かどうか判定する方法について解説します。

Character.isDigitメソッドは引数にchar型の値を渡すことで数値かどうか判定することができます。
これを利用して文字列を先頭から1文字ずつ判定し、文字列全体が数値かどうか判定します。
実際のコードを確認は次のようになります。

サンプルコード

public class IsNumber {

	public static void main(String[] args) {
		
		// 判定対象の文字列
		String text1 = "1234";
		String text2 = "123a";
		
		// 検証結果を格納する変数
		boolean result = true;
		
		// text1をチェックして結果を取得
		result = checkString(text1);
		System.out.println("text1: " + result);
		
		// text2をチェックして結果を取得
		result = checkString(text2);
		System.out.println("text2: " + result);
	}
	
	// 文字列が数値かどうか判定する関数
	public static boolean checkString(String text) {
		
		boolean res = true;
		
		// 受け取った文字列を先頭から1文字ずつ判定する
		for(int i = 0; i < text.length(); i++) {
			
			// もし数値だったら次の処理へ
			if(Character.isDigit(text.charAt(i))) {
				continue;
			} else {
				// 変数にfalseを代入して処理を終了する
				res =  false;
				break;
			}
		}
		
		return res;
	}
}

実行結果

text1: true
text2: false

まとめ

今回はJavaで文字列が数値かどうか判定する方法について解説しました。
Javaで文字列が数値かどうか判定する方法にはいろいろな種類がありますが、今回は正規表現で判定する方法とCharacter.isDigitメソッドを使う方法について解説しました。

最後まで読んでいただきありがとうございました。
少しでもあなたのプログラミング学習の手助けになれば幸いです。
「独学は不安だけどプログラミングスクールは高くて手が出せない」と考えているあなたにNeo Collegeがおすすめです!
通常プログラミングスクールが十数万〜数十万円するところ、Neo College69,800円と圧倒的な低価格で受講することができます!
気になった方は一度公式サイトをチェックしてみてくださいね。

コメント

タイトルとURLをコピーしました