CodeGym /Java Blog /ランダム /Java isDigit メソッド
John Squirrels
レベル 41
San Francisco

Java isDigit メソッド

ランダム グループに公開済み
ブール値を返すメソッドは、ほとんどの場合「is」という単語で始まり、チェック対象の要素が特定の条件に一致するかどうかをチェックすることを意味します。この記事で説明する Character.isDigit() メソッドは、指定された char 値が数字であるかどうかを判断し ます

Java isDigit メソッドの構文

java.lang.Character.isDigit(char ch) は、指定された文字が数字であるかどうかを判断する Java の組み込みメソッドです。Java プログラミングの文脈における「数字」は何を意味しますか? Java Doc の定義によれば、Character.getType(ch)メソッドがDECIMAL_DIGIT_NUMBER定数を返す場合、その文字は数字です。数字を含む Unicode 文字範囲の一部を次に示します。
  • 「\u0030」から「\u0039」は ISO-LATIN-1 数字 (「0」から「9」) です。

  • 「\u0660」から「\u0669」はアラビア・インド数字です

  • 「\u06F0」から「\u06F9」は拡張アラビア・インド数字です

  • 「\u0966」から「\u096F」はデヴァナーガリー数字です

  • \uFF10' から '\uFF19' は全角数字です

他にも数字を含む範囲がいくつかあります。ただし、ほとんどの場合、「\u0030」から「\u0039」までの数字を使用します。Character.isDigit()の構文は次のとおりです。

public static boolean isDigit(char myChar)
ここで、myChar はテストされる文字です。このメソッドは、文字が数字の場合はtrueを返し、それ以外の場合はfalse を返します。Java ドキュメントによると、isDigit(char myChar)メソッドは補助文字を処理できません。補助文字を含むすべての Unicode 文字をサポートするには、プログラマはisDigit(int)メソッドを使用する必要があります。見た目は同じですが、OOP とポリモーフィズムのサポートのおかげで、動作が少し異なります。 public static boolean isDigit(int codePoint) は、指定された文字 (Unicode コード ポイント) が数字であるかどうかを判断します。文字エンコード用語では、コード ポイントまたはコード位置は、特定の文字に対応する数値です。isDigit(int codePoint)も、文字が数字の場合はtrueを返し、そうでない場合はfalse を返します。

Java isDigit メソッドの簡単な例

Java Charcher.isDigit()メソッドを使ってみましょう。まず最初に、メソッドを説明するための簡単なプログラムを作成します。

public class isDigitTest {
//isDigit(char ch) simple example
   public static void main(String[] args)
   {

       //characters to check using isDigit Java method
       char myChar1 = '5', myChar2 = 'u', myChar3 = '0';

       // Function to check if the character
       // is digit or not, using isDigit() method
       System.out.println("is char " + myChar1 + " a digit? "
                       + Character.isDigit(myChar1));
       System.out.println(
               "is char " + myChar2 + " a digit? "
                       + Character.isDigit(myChar2));

       System.out.println(
               "is char " + myChar3 + " a digit? "
                       + Character.isDigit(myChar3));
   }
}
出力は次のとおりです。
char 5 は数字ですか? true は char ua digit ですか? false は char ua digit ですか? 真実

Java isDigit メソッド、もう少し複雑な例

Character.isDigit()を使ってみましょうもっと興味深く現実の問題に。ランレングスエンコーディング(略してRLE)と呼ばれる圧縮方法があります。ランレングスエンコーディングは、繰り返される文字 (シリーズ) を 1 つの文字とその繰り返し数に置き換えるデータ圧縮アルゴリズムです。シリーズとは、複数の同一の文字で構成されるシーケンスです。エンコード (パッキング、圧縮) する場合、一連の同一文字を構成する文字列は、繰り返し文字自体とその繰り返し回数を含む文字列に置き換えられます。したがって、文字列「hhhhorrribleeee」がある場合、ランレングス エンコードの結果は h5or3ible5 になります。文字列をデコードする場合は、数字か非数字文字かを順番にチェックする必要があります。数字がある場合は、その数字が何であるかを取得します。ところで、皆さんはJPEGファイルを知っています。この形式は、量子化データに対して対角パターンでランレングス符号化の変形を使用します。変形例は、ゼロ値の連続の長さのみがエンコードされ、他のすべての値はそれ自体としてエンコードされます。以下の例では、Character.isDigit(char ch)メソッドを使用して、ランレングス エンコードでエンコードされた文字列をデコードします。興味があれば、プログラムを完成させてみてください。つまり、その最初の部分を作成して、RLE で文字列をエンコードしたり、ファイルから文字列を読み取るためのメソッドを作成してみてください。または、入力の正確さを確認しながら、コンソールから手動で文字列を入力します。RLE デコードの例を次に示します。

public class RleTest {

   //the method to decode String using run-length encoding and 
//isDigit() method 
   private static String decodeRle(String encoded) {
       if (encoded.isBlank()) return "";
       StringBuilder result = new StringBuilder();
       int count = 0;
       char baseChar = encoded.charAt(0);
       for (int i = 1; i <= encoded.length(); i++) {
           char c = i == encoded.length() ? '$' : encoded.charAt(i);
//checking using isDigit() method           
if (Character.isDigit(c)) {
               count = count * 10 + Character.digit(c, 10);
           } else {
               do {
                   result.append(baseChar);
                   count--;
               } while (count > 0);
               count = 0;
               baseChar = c;
           }
       }
       return result.toString();
   }
   
public static void main(String[] args) {
//here we are going to decode an RLE-encoded string 
       System.out.println(decodeRle("C3ecddf8"));
   }
}
出力は次のとおりです。
CCCecddffffffff
お気づきかもしれませんが、 StringではなくStringBuilderを使用しています。なぜ?実際のところ、Stringは不変であり、カウンタをインクリメントし、そのたびに新しい文字列が作成されます。プログラムではCharacter.digitメソッドも使用しました。java.lang.Character.digit() は、指定された記数法で文字chの数値を返すメソッドです。基数が MIN_RADIX <= Base <= MAX_RADIX の範囲にない場合、またはch が指定された基数の有効な数字ではない場合、メソッドは -1 を返します。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION