Metode yang mengembalikan nilai boolean paling sering dimulai dengan kata “is” dan artinya memeriksa apakah elemen yang diperiksa cocok dengan kondisi tertentu. Metode Character.isDigit() , yang akan kita bahas dalam artikel ini, menentukan apakah nilai char yang ditentukan adalah sebuah digit.
Sintaks metode Java isDigit
java.lang.Character.isDigit(char ch) adalah metode bawaan di Java yang menentukan apakah karakter yang ditentukan adalah digit atau bukan. Apa arti "digit" dalam konteks pemrograman Java? Menurut definisi di Java Doc, jika metode Character.getType(ch) mengembalikan konstanta DECIMAL_DIGIT_NUMBER , maka karakternya adalah digit. Beberapa rentang karakter Unicode yang berisi angka adalah sebagai berikut:-
Dari '\u0030' hingga '\u0039' adalah digit ISO-LATIN-1 ('0' hingga '9')
-
Dari '\u0660' sampai '\u0669' adalah angka Arab-India
-
Dari '\u06F0' hingga '\u06F9' adalah digit Arab-India yang Diperluas
-
Dari '\u0966' hingga '\u096F' adalah digit Devanagari
-
Dari \uFF10' hingga '\uFF19'adalah digit Lebar Penuh
public static boolean isDigit(char myChar)
Dimana myChar adalah karakter yang akan diuji. Metode ini mengembalikan nilai true jika karakternya berupa digit dan false jika sebaliknya. Menurut metode Java doc isDigit(char myChar) tidak dapat menangani karakter tambahan. Untuk mendukung semua karakter Unicode, termasuk karakter pelengkap, pemrogram harus menggunakan metode isDigit(int) . Ini terlihat dengan cara yang sama, tetapi berkat OOP dan dukungan polimorfisme bekerja sedikit berbeda. public static boolean isDigit(int codePoint) menentukan apakah karakter yang ditentukan (titik kode Unicode) adalah sebuah digit. Dalam terminologi pengkodean karakter, titik kode atau posisi kode adalah nilai numerik yang sesuai dengan karakter tertentu.isDigit(int codePoint) juga mengembalikan true jika karakter adalah digit dan false sebaliknya.
Contoh sederhana metode Java isDigit
Mari kita coba bekerja dengan metode Java Characher.isDigit() . Pertama-tama kita akan menulis program sederhana untuk mendemonstrasikan metode ini.
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 adalah:
apakah char 5 adalah angka? benar adalah char ua digit? salah adalah char ua digit? BENAR
Metode Java isDigit, contoh yang sedikit lebih rumit
Mari kita coba gunakan Character.isDigit()dalam masalah kehidupan yang lebih menarik dan nyata. Ada metode kompresi yang disebut Run Length Encoding atau disingkat RLE. Run Length Encoding adalah algoritma kompresi data yang menggantikan karakter berulang (seri) dengan satu karakter dan jumlah pengulangannya. Seri adalah urutan yang terdiri dari beberapa karakter yang identik. Saat menyandikan (mengemas, mengompresi), string karakter identik yang membentuk rangkaian diganti dengan string yang berisi karakter berulang itu sendiri dan jumlah pengulangannya. Jadi jika Anda memiliki pengodean panjang string "hhhhhorrribleeee" memberikan hasil: h5or3ible5. Jika Anda mendekode string, Anda harus memeriksa secara berurutan apakah Anda memiliki karakter digit atau non-digit, dan jika Anda memiliki digit, saatnya untuk mendapatkan digitnya. Ngomong-ngomong, kalian semua tahu file JPEG. Format ini menggunakan varian run-length encoding dalam pola diagonal pada data terkuantisasi. Variannya adalah bahwa hanya panjang proses dari nilai nol yang dikodekan dan semua nilai lainnya dikodekan sebagai dirinya sendiri. Pada contoh di bawah ini, kami menggunakan theMetode Character.isDigit(char ch) untuk mendekode string yang disandikan dengan pengkodean Run-length. Jika Anda tertarik, coba selesaikan programnya, atau lebih tepatnya, buat bagian pertamanya dan tulis metode pengkodean string RLE, serta membaca string dari file. Atau memasukkan string secara manual dari konsol sambil memeriksa kebenaran input. Berikut adalah contoh decoding 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 adalah:
CCCecddffffff
Anda mungkin memperhatikan bahwa kita tidak menggunakan String , tetapi StringBuilder . Mengapa? Faktanya adalah bahwa String tidak dapat diubah, dan kami menaikkan penghitung, dan setiap kali string baru akan dibuat. Kami juga menggunakan metode Character.digit dalam program ini. java.lang.Character.digit() adalah metode yang mengembalikan nilai numerik dari karakter ch dalam sistem bilangan yang ditentukan. Jika basis tidak berada dalam kisaran MIN_RADIX <= basis <= MAX_RADIX, atau jika ch bukan digit yang valid dalam basis yang ditentukan, metode mengembalikan -1.
GO TO FULL VERSION