CodeGym /Blog Java /rawak /Kaedah Java isDigit
John Squirrels
Tahap
San Francisco

Kaedah Java isDigit

Diterbitkan dalam kumpulan
Kaedah yang mengembalikan nilai boolean paling kerap bermula dengan perkataan "adalah" dan bermaksud menyemak sama ada elemen yang diperiksa sepadan dengan syarat tertentu. Kaedah Character.isDigit() , yang akan kita bincangkan dalam artikel ini, menentukan sama ada nilai char yang ditentukan ialah digit.

Sintaks kaedah Java isDigit

java.lang.Character.isDigit(char ch) ialah kaedah terbina dalam Java yang menentukan sama ada aksara yang ditentukan ialah digit atau tidak. Apakah maksud "digit" dalam konteks pengaturcaraan Java? Mengikut takrifan dalam Java Doc, jika kaedah Character.getType(ch) mengembalikan DECIMAL_DIGIT_NUMBER pemalar, maka aksara itu ialah digit. Beberapa julat aksara Unicode yang mengandungi digit adalah yang seterusnya:
  • Dari '\u0030' hingga '\u0039' ialah ISO-LATIN-1 digit ('0' hingga '9')

  • Dari '\u0660' hingga '\u0669' ialah digit Arab-Indik

  • Daripada '\u06F0' hingga'\u06F9' ialah digit Arab-Indik Lanjutan

  • Dari '\u0966' hingga '\u096F' ialah digit Devanagari

  • Dari \uFF10' hingga '\uFF19'adalah digit Lebar Penuh

Terdapat juga beberapa julat lain yang mengandungi digit. Walau bagaimanapun, selalunya kita akan menggunakan digit daripada '\u0030' hingga '\u0039'. Sintaks Character.isDigit() ada di sini:

public static boolean isDigit(char myChar)
Di mana myChar adalah watak yang akan diuji. Kaedah ini mengembalikan benar jika aksara ialah digit dan palsu sebaliknya. Menurut kaedah Java doc isDigit(char myChar) tidak boleh mengendalikan aksara tambahan. Untuk menyokong semua aksara Unicode, termasuk aksara tambahan, pengaturcara harus menggunakan kaedah isDigit(int) . Ia kelihatan dengan cara yang sama, tetapi, terima kasih kepada OOP dan sokongan polimorfisme berfungsi sedikit berbeza. boolean statik awam isDigit(int codePoint) menentukan sama ada aksara yang ditentukan (titik kod Unicode) ialah digit. Dalam terminologi pengekodan aksara, titik kod atau kedudukan kod ialah nilai berangka yang sepadan dengan aksara tertentu.isDigit(int codePoint) juga mengembalikan benar jika aksara adalah digit dan palsu sebaliknya.

Contoh mudah kaedah Java isDigit

Mari cuba bekerja dengan kaedah Java Characher.isDigit() . Pertama sekali kita akan menulis program mudah untuk menunjukkan kaedahnya.

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));
   }
}
Outputnya ialah:
adakah char 5 adalah digit? benarkah char ua digit? palsu adakah char ua digit? benar

Kaedah Java isDigit, contoh yang sedikit lebih rumit

Mari cuba gunakan Character.isDigit()dalam masalah kehidupan yang lebih menarik dan sebenar. Terdapat kaedah mampatan yang dipanggil Run Length Encoding atau singkatannya RLE. Run Length Encoding ialah algoritma pemampatan data yang menggantikan aksara berulang (siri) dengan satu aksara dan bilangan ulangannya. Siri ialah urutan yang terdiri daripada beberapa aksara yang sama. Apabila pengekodan (membungkus, memampatkan), rentetan aksara yang sama yang membentuk satu siri digantikan dengan rentetan yang mengandungi aksara berulang itu sendiri dan bilangan pengulangannya. Jadi, jika anda mempunyai rentetan pengekodan panjang larian "hhhhhorrribleeee" memberikan hasil: h5or3ible5. Jika anda menyahkod rentetan, anda harus menyemak secara berurutan sama ada anda mempunyai aksara digit atau bukan digit, dan jika anda mempunyai digit, sudah tiba masanya untuk mendapatkan digit itu. Dengan cara ini, anda semua tahu fail JPEG. Format ini menggunakan varian pengekodan panjang larian dalam corak pepenjuru berbanding data terkuantiti. Varian adalah bahawa hanya panjang larian nilai sifar dikodkan dan semua nilai lain dikodkan sebagai diri mereka sendiri. Dalam contoh di bawah, kami menggunakanKaedah Character.isDigit(char ch) untuk menyahkod rentetan yang dikodkan dengan pengekodan Run-length. Jika anda berminat, cuba selesaikan atur cara, atau lebih tepat, buat bahagian pertamanya dan tulis kaedah untuk pengekodan RLE rentetan, serta membaca rentetan daripada fail. Atau memasukkan rentetan secara manual daripada konsol sambil menyemak ketepatan input. Berikut ialah contoh penyahkodan 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"));
   }
}
Outputnya ialah:
CCCecddffffffff
Anda mungkin perasan bahawa kami tidak menggunakan String , tetapi StringBuilder . kenapa? Hakikatnya ialah String tidak boleh diubah, dan kami menambah pembilang, dan setiap kali rentetan baharu akan dibuat. Kami juga menggunakan kaedah Character.digit dalam atur cara. java.lang.Character.digit() ialah kaedah yang mengembalikan nilai berangka aksara ch dalam sistem nombor yang ditentukan. Jika pangkalan tidak berada dalam julat MIN_RADIX <= asas <= MAX_RADIX, atau jika ch bukan digit yang sah dalam pangkalan yang ditentukan, kaedah mengembalikan -1.
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION