Java

【Java】文字列が数値かどうかチェックする方法

Javaで文字列が数値か判定

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

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

挫折せずにプログラミングを学ぶために必要なこと

僕はプログラミングで挫折した経験があります。

それは周りに聞ける人がいなく、一人でエラーと戦っていたからです。

Freeksは月額10,780円という破格の値段で、現役エンジニアに質問する環境を手に入れることができるプログラミングスクールです。

次のような悩みを少しでも抱えていたら、まずは無料カウンセリングを受けてみてください。

  • エラーを一人で解消できない
  • このまま勉強を続けて本当に就職できるかわからない
  • プログラミングスクールは高額すぎて通えない
  • 申込みは1分でできます。学習する環境にお金を使うというのは良い自己投資になります。
    >>Freeksの無料カウンセリングはこちら

    正規表現を使って文字列が数値かどうかチェックする

    まずは正規表現を使って文字列が数値かどうかチェックする方法について解説していきます。

    正規表現を使う方法では整数だけ許容する方法や正の数だけ許容する方法など様々な方法がありますが、今回は正と負の整数である場合に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

    今回は正と負の整数のチェックを行いました。正規表現を使うことで、さまざまな条件でチェックすることができます!

    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

    Charcter.isDigitメソッドに一文字づつ渡すことで、数値かどうか判定することができる!

    今回はJavaで文字列が数値かどうかチェックする方法について解説しました。

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

    挫折せずにプログラミングを学ぶためには?

    僕はプログラミングで挫折した経験があります。

    エラーの連続やエラーが解消しても思った通りに動かないといったことが原因で、プログラミングが嫌いでした。

    「プログラミングって全然意味わからないし、全然楽しくない」そう思っていました。

    原因は当時周りに聞ける人が誰もいなかったからです。

    プログラミング学習をしていく上で周りに聞ける環境というのはとても大切です。

    周りに聞ける人なんていない

    そんな人におすすめなのが月額10,780円で現役エンジニアに質問できる、プログラミングスクールのFreeksです。

    多くのプログラミングスクールが数十万円払って通うところを月額10,780円から通うことができるのはコスパが良いです。

    しかもサブスク制で、自分のペースで学ぶことができ嫌になったらすぐにやめることができます。

    「周りに誰も聞ける人がいなくて、エラーが解決できない」「プログラミング全然楽しくない」という方は、無料カウンセリングを受けてみて下さい。

    \\サブスク型スクールで挫折せずにエンジニアになろう//

    Freeks公式サイトはこちら

    まずは無料カウンセリングから

    【関連記事】Freeks評判、口コミ

    -Java
    -, , , ,