CodeGym /Java Blogu /Rastgele /Java isDigit yöntemi
John Squirrels
Seviye
San Francisco

Java isDigit yöntemi

grupta yayınlandı
Bir boole değeri döndüren yöntemler çoğunlukla "is" sözcüğüyle başlar ve kontrol edilen öğenin belirli bir koşulla eşleşip eşleşmediğinin kontrol edilmesi anlamına gelir. Bu yazıda ele alacağımız Character.isDigit() methodu belirtilen char değerinin digit olup olmadığını belirler .

Java isDigit yöntemi sözdizimi

java.lang.Character.isDigit(char ch), Java'da belirtilen karakterin bir rakam olup olmadığını belirleyen yerleşik bir yöntemdir. Java programlama bağlamında “bir rakam” ne anlama gelir? Java Doc'daki tanıma göre, Character.getType(ch) yöntemi DECIMAL_DIGIT_NUMBER sabitini döndürürse, karakter bir rakamdır. Rakam içeren bazı Unicode karakter aralıkları aşağıdaki gibidir:
  • '\u0030' ile '\u0039' arası ISO-LATIN-1 rakamlarıdır ('0' ile '9' arası)

  • '\u0660' ile '\u0669' arası Arapça-Hint rakamlarıdır

  • '\u06F0' ile'\u06F9' arası Genişletilmiş Arapça-Hint rakamlarıdır

  • '\u0966' ile '\u096F' arası Devanagari rakamlarıdır

  • \uFF10' ile '\uFF19' arasındaki rakamlar Tam genişlikte rakamlardır

Rakam içeren başka bazı aralıklar da vardır. Ancak, çoğu zaman '\u0030' ile '\u0039' arasındaki rakamları kullanacağız. Character.isDigit() sözdizimi buradadır:

public static boolean isDigit(char myChar)
Burada myChar, test edilecek karakterdir. Bu yöntem , karakter bir rakam ise doğru , aksi takdirde yanlış döndürür . Java belgesine göre isDigit(char myChar) yöntemi ek karakterleri işleyemez. Ek karakterler de dahil olmak üzere tüm Unicode karakterlerini desteklemek için programcının isDigit(int) yöntemini kullanması gerekir. Aynı şekilde görünüyor, ancak OOP ve polimorfizm desteği sayesinde biraz farklı çalışıyor. public static boolean isDigit(int codePoint), belirtilen karakterin (Unicode kod noktası) bir rakam olup olmadığını belirler. Karakter kodlama terminolojisinde, bir kod noktası veya kod konumu, belirli bir karaktere karşılık gelen sayısal bir değerdir.isDigit(int codePoint) ayrıca , karakter bir rakamsa doğru , aksi takdirde yanlış döndürür .

Java isDigit yöntemi basit bir örnek

Java Characher.isDigit() yöntemiyle çalışmayı deneyelim . Öncelikle yöntemi göstermek için basit bir program yazacağız.

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));
   }
}
Çıktı:
karakter 5 bir rakam mı? char ua hanesi doğru mu? char ua rakamı yanlış mı? doğru

Java isDigit yöntemi, biraz daha karmaşık bir örnek

Karakter.isDigit() kullanmayı deneyelimdaha ilginç ve gerçek hayat probleminde. Run Length Encoding veya kısaca RLE adında bir sıkıştırma yöntemi vardır. Çalışma Uzunluğu Kodlaması, tekrarlanan karakterleri (serileri) bir karakter ve tekrar sayısı ile değiştiren bir veri sıkıştırma algoritmasıdır. Bir dizi, birkaç özdeş karakterden oluşan bir dizidir. Kodlama (paketleme, sıkıştırma) sırasında, bir dizi oluşturan özdeş karakter dizisi, yinelenen karakterin kendisini ve tekrar sayısını içeren bir dizi ile değiştirilir. Dolayısıyla, bir "hhhhhorrribleeeee" diziniz varsa, çalışma uzunluğu kodlaması şu sonucu verir: h5or3ible5. Dizinin kodunu çözerseniz, basamaklı veya basamaksız bir karakteriniz olup olmadığını sırayla kontrol etmelisiniz ve bir rakamınız varsa, rakamın ne olduğunu almanın zamanı geldi. Bu arada hepiniz JPEG dosyalarını biliyorsunuz. Bu format, nicelenmiş veriler üzerinde çapraz bir düzende çalışma uzunluğu kodlamasının bir varyantını kullanır. Varyant, yalnızca sıfır değerlerinin uzunluklarının kodlanması ve diğer tüm değerlerin kendileri olarak kodlanmasıdır. Aşağıdaki örnekte,Çalışma uzunluğu kodlaması ile kodlanmış bir dizenin kodunu çözmek için Character.isDigit(char ch) yöntemi. İlgileniyorsanız, programı tamamlamayı deneyin veya daha doğrusu, ilk bölümünü oluşturun ve bir diziyi RLE kodlamanın yanı sıra bir dosyadan bir dize okumak için bir yöntem yazın. Veya girişin doğruluğunu kontrol ederken konsoldan bir dizeyi manuel olarak girmek. İşte bir RLE kod çözme örneği:

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"));
   }
}
Çıktı:
CCCecddffffffff
Bir String değil , bir StringBuilder kullandığımızı fark etmiş olabilirsiniz . Neden? Gerçek şu ki , String değişmezdir ve sayacı artırırız ve her seferinde yeni bir dize oluşturulur. Ayrıca programda Character.digit metodunu kullandık . java.lang.Character.digit(), belirtilen sayı sistemindeki ch karakterinin sayısal değerini döndüren bir yöntemdir . Taban MIN_RADIX <= base <= MAX_RADIX aralığında değilse veya ch belirtilen tabanda geçerli bir rakam değilse, yöntem -1 değerini döndürür.
Yorumlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION