एक बूलियन मान लौटाने वाली विधियाँ अक्सर "है" शब्द से शुरू होती हैं और इसका मतलब है कि जाँच की जा रही तत्व एक निश्चित स्थिति से मेल खाती है या नहीं। इस लेख में हम जिस Character.isDigit () विधि पर चर्चा करने जा रहे हैं, वह यह निर्धारित करती है कि निर्दिष्ट चार मान एक अंक है या नहीं।
Java isDigit मेथड सिंटैक्स है
java.lang.Character.isDigit(char ch) जावा में एक अंतर्निहित विधि है जो यह निर्धारित करती है कि निर्दिष्ट वर्ण एक अंक है या नहीं। जावा प्रोग्रामिंग संदर्भ में "अंक" का क्या अर्थ है? Java Doc में परिभाषा के अनुसार, यदि Character.getType(ch) विधि DECIMAL_DIGIT_NUMBER स्थिरांक लौटाती है, तो वर्ण एक अंक है। कुछ यूनिकोड कैरेक्टर रेंज जिनमें अंक होते हैं वे अगले हैं:-
'\u0030' से '\u0039' तक ISO-LATIN-1 अंक हैं ('0' से '9' तक)
-
'\u0660' से '\u0669' तक अरबी-इंडिक अंक हैं
-
'\u06F0' से लेकर'\u06F9' तक विस्तारित अरबी-इंडिक अंक हैं
-
'\u0966' से '\u096F' तक देवनागरी अंक होते हैं
-
\uFF10' से '\uFF19' तक पूर्ण-चौड़ाई वाले अंक हैं
public static boolean isDigit(char myChar)
जहाँ myChar परीक्षण किया जाने वाला पात्र है। यह विधि सत्य लौटाती है यदि वर्ण एक अंक है और अन्यथा गलत है । जावा दस्तावेज़ के अनुसार isDigit(char myChar) विधि पूरक वर्णों को संभाल नहीं सकती है। पूरक वर्णों सहित सभी यूनिकोड वर्णों का समर्थन करने के लिए, प्रोग्रामर को isDigit (int) विधि का उपयोग करना चाहिए। यह उसी तरह दिखता है, लेकिन, OOP और बहुरूपता समर्थन के लिए धन्यवाद थोड़ा अलग तरीके से काम करता है। सार्वजनिक स्थैतिक बूलियन isDigit(int codePoint) निर्धारित करता है कि निर्दिष्ट वर्ण (यूनिकोड कोड बिंदु) एक अंक है या नहीं। वर्ण एन्कोडिंग शब्दावली में, एक कोड बिंदु या कोड स्थिति एक संख्यात्मक मान है जो एक विशिष्ट वर्ण से मेल खाता है।isDigit(int codePoint) भी सही देता है यदि वर्ण एक अंक है और अन्यथा गलत है ।
जावा डिजिट विधि सरल उदाहरण है
आइए Java Characher.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));
}
}
आउटपुट है:
चार 5 एक अंक है? चार यूए डिजिट सच है? झूठ चार यूए अंक है? सत्य
जावा डिजिट विधि है, थोड़ा और जटिल उदाहरण
आइए कैरेक्टर.इसडिजिट () का उपयोग करने का प्रयास करेंअधिक रोचक और वास्तविक जीवन की समस्या में। संक्षेप में रन लेंथ एनकोडिंग या आरएलई नामक एक संपीड़न विधि है। रन लेंथ एनकोडिंग एक डेटा कंप्रेशन एल्गोरिथम है जो दोहराए गए वर्णों (श्रृंखला) को एक वर्ण और उसके दोहराव की संख्या से बदल देता है। एक श्रृंखला एक अनुक्रम है जिसमें कई समान वर्ण होते हैं। एन्कोडिंग (पैकिंग, कंप्रेसिंग) करते समय, एक श्रृंखला बनाने वाले समान वर्णों की एक स्ट्रिंग को दोहराए जाने वाले वर्ण और उसके दोहराव की संख्या वाले स्ट्रिंग द्वारा प्रतिस्थापित किया जाता है। इसलिए यदि आपके पास एक स्ट्रिंग है "hhhhhhorribleeee" रन लेंथ एन्कोडिंग एक परिणाम देता है: h5or3ible5। यदि आप स्ट्रिंग को डीकोड करते हैं, तो आपको अनुक्रमिक रूप से जांचना चाहिए कि क्या आपके पास अंक या गैर-अंकीय वर्ण है, और यदि आपके पास अंक है, तो यह अंक प्राप्त करने का समय है। वैसे तो आप सभी JPEG files के बारे में जानते ही होंगे. यह प्रारूप परिमाणित डेटा पर विकर्ण पैटर्न में रन-लम्बाई एन्कोडिंग के एक प्रकार का उपयोग करता है। भिन्नता यह है कि केवल शून्य मानों के रन की लंबाई एन्कोड की जाती है और अन्य सभी मान स्वयं के रूप में एन्कोड किए जाते हैं। नीचे दिए गए उदाहरण में, हम उपयोग करते हैंवर्ण.isDigit(char ch) विधि रन-लंबाई एन्कोडिंग के साथ एन्कोडेड स्ट्रिंग को डीकोड करने के लिए। यदि आप रुचि रखते हैं, तो प्रोग्राम को पूरा करने का प्रयास करें, या इसके पहले भाग को बनाएं और स्ट्रिंग को आरएलई एन्कोडिंग के साथ-साथ फ़ाइल से स्ट्रिंग पढ़ने के लिए एक विधि लिखें। या इनपुट की शुद्धता की जांच करते समय मैन्युअल रूप से कंसोल से एक स्ट्रिंग दर्ज करना। यहाँ 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
आपने देखा होगा कि हम स्ट्रिंग का उपयोग नहीं कर रहे हैं , लेकिन स्ट्रिंगबिल्डर का उपयोग कर रहे हैं । क्यों? तथ्य यह है कि स्ट्रिंग अपरिवर्तनीय है, और हम काउंटर बढ़ाते हैं, और हर बार एक नया स्ट्रिंग बनाया जाएगा। हमने प्रोग्राम में कैरेक्टर.डिजिट मेथड का भी इस्तेमाल किया। java.lang.Character.digit() एक विधि है जो निर्दिष्ट संख्या प्रणाली में वर्ण ch का संख्यात्मक मान लौटाती है । यदि आधार MIN_RADIX <= आधार <= MAX_RADIX श्रेणी में नहीं है, या यदि ch निर्दिष्ट आधार में मान्य अंक नहीं है, तो विधि -1 लौटाती है।
GO TO FULL VERSION