Java
 Computer >> コンピューター >  >> プログラミング >> Java

【Java】文字列の最初の文字が数字かどうかを判定する2つの方法


方法1:Character.isDigit()メソッドを使う

java.lang.CharacterクラスのisDigit()メソッドは、引数としてchar型の文字を受け取り、その文字が数字(0~9)であるかどうかを判定します。数字であればtrueを、それ以外の場合はfalseを返します。

文字列の最初の文字が数字かどうかを確認するには、次の手順に従います。

  • charAt()メソッド:Stringクラスのこのメソッドは、インデックスを表す整数値を引数に取り、指定した位置の文字を返します。先頭の文字はcharAt(0)で取得できます。
  • toCharArray()メソッド:Stringクラスのこのメソッドは、文字列をchar型の配列に変換して返します。変換後の配列のarray[0]で先頭の文字を取得できます。
  • 上記のいずれかの方法で、対象の文字列の1文字目を取得します。
  • 取得した文字をisDigit()メソッドに渡し、戻り値によって数字かどうかを判定します。

なお、空の文字列に対してcharAt(0)を呼び出すとStringIndexOutOfBoundsExceptionが発生するため、実際のプログラムでは文字列が空でないことを事前にチェックしておくと安全です。

サンプルコード

import java.util.Scanner;

public class FirstCharacterOfString {
    public static void main(String args[]) {
        // ユーザーから文字列を入力してもらう
        System.out.println("文字列を入力してください");
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        // 文字列をchar型の配列に変換する
        char charArray[] = str.toCharArray();
        boolean bool = Character.isDigit(charArray[0]);
        if (bool) {
            System.out.println("最初の文字は数字です");
        } else {
            System.out.println("最初の文字は数字ではありません");
        }
    }
}

実行例1

文字列を入力してください
krishna
最初の文字は数字ではありません

実行例2

文字列を入力してください
2sample
最初の文字は数字です

方法2:正規表現を使う

Stringクラスのmatches()メソッドは、引数として正規表現を受け取り、現在の文字列がそのパターンと一致するかどうかを検証します。一致すればtrueを、一致しなければfalseを返します。

「先頭の文字が数字である文字列」に一致する正規表現は「^[0-9].*$」です。^は文字列の先頭、[0-9]は0から9までのいずれか1文字、.*$はその後に続く任意の文字列を表します。このパターンをmatches()メソッドに渡すだけで、簡単に判定できます。

サンプルコード

import java.util.Scanner;

public class FirstCharacterOfString {
    public static void main(String args[]) {
        // ユーザーから文字列を入力してもらう
        System.out.println("文字列を入力してください");
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        // 正規表現で先頭文字が数字かどうかを判定する
        boolean bool = str.matches("^[0-9].*$");
        if (bool) {
            System.out.println("最初の文字は数字です");
        } else {
            System.out.println("最初の文字は数字ではありません");
        }
    }
}

実行例1

文字列を入力してください
krishna
最初の文字は数字ではありません

実行例2

文字列を入力してください
2sample
最初の文字は数字です

  1. Javaで特定の文字が数字か文字かを判定する方法(Character.isDigitの使い方)

    CharacterクラスはObjectクラスのサブクラスであり、プリミティブ型charの値をオブジェクトとしてラップする役割を持っています。Character型のオブジェクトは、char型の値を保持する単一のフィールドを持ちます。 文字列の中に含まれる特定の文字が「数字」なのか「文字」なのかを判定したい場合は、CharacterクラスのisDigit()メソッドを利用するのが便利です。isDigit()メソッドはstaticメソッドとして定義されており、引数に渡された指定の文字が数字(digit)であるかどうかを判定し、その結果をboolean型(true/false)として返します。 なお

  2. 【Java】文字列(String)をintに変換する方法をサンプルコード付きで解説

    Javaで文字列(String)を数値(int)に変換したい場面は非常によくあります。文字列が数字のみで構成されている場合は、Integer.parseInt() または Integer.valueOf() を使うのが最も簡単かつ確実な方法です。 一方、文字列の中に数字と英字が混在している場合は、正規表現を使ってまず数字部分だけを取り出し、その結果得られた文字列をintに変換するという手順が必要になります。 ここで押さえておきたい重要なポイントがあります。parseInt(String) はプリミティブ型の int を返すのに対して、valueOf(String) は Integer オブジ