CodeGym /جاوا بلاگ /Random-UR /Java isDigit طریقہ
John Squirrels
سطح
San Francisco

Java isDigit طریقہ

گروپ میں شائع ہوا۔
بولین ویلیو واپس کرنے والے طریقے اکثر لفظ "is" سے شروع ہوتے ہیں اور اس کا مطلب یہ ہے کہ چیک کیا جا رہا ہے کہ آیا عنصر کسی خاص شرط سے میل کھاتا ہے۔ 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' تک پوری چوڑائی کے ہندسے ہیں۔

ہندسوں پر مشتمل کچھ دوسری حدود بھی ہیں۔ تاہم، اکثر ہم ہندسوں کو '\u0030' سے '\u0039' تک استعمال کرنے جا رہے ہیں۔ Character.isDigit() کا نحو یہاں ہے:
public static boolean isDigit(char myChar)
جہاں myChar کی جانچ کی جانی ہے۔ یہ طریقہ درست لوٹاتا ہے اگر کردار ایک ہندسہ ہے اور دوسری صورت میں غلط ہے ۔ جاوا ڈاک کے مطابق isDigit(char myChar) طریقہ ضمنی حروف کو نہیں سنبھال سکتا۔ تمام یونیکوڈ حروف کو سپورٹ کرنے کے لیے، بشمول سپلیمنٹری حروف، پروگرامر کو isDigit(int) طریقہ استعمال کرنا چاہیے۔ یہ اسی طرح لگتا ہے، لیکن، OOP اور پولیمورفزم سپورٹ کی بدولت تھوڑا سا مختلف کام کرتا ہے۔ عوامی جامد بولین isDigit(int codePoint) اس بات کا تعین کرتا ہے کہ آیا مخصوص کریکٹر (یونیکوڈ کوڈ پوائنٹ) ایک ہندسہ ہے۔ کریکٹر انکوڈنگ ٹرمینالوجی میں، کوڈ پوائنٹ یا کوڈ پوزیشن ایک عددی قدر ہے جو ایک مخصوص کریکٹر سے مطابقت رکھتی ہے۔ isDigit(int codePoint) بھی صحیح لوٹاتا ہے اگر کریکٹر ایک ہندسہ ہے اور دوسری صورت میں غلط ہے ۔

Java isDigit طریقہ سادہ مثال

آئیے جاوا 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 ایک ہندسہ ہے؟ کیا چار یو اے کا ہندسہ درست ہے؟ چار یو اے کا ہندسہ غلط ہے؟ سچ

Java isDigit طریقہ، تھوڑا سا زیادہ پیچیدہ مثال

آئیے ایک زیادہ دلچسپ اور حقیقی زندگی کے مسئلے میں Character.isDigit() کو استعمال کرنے کی کوشش کریں۔ ایک کمپریشن طریقہ ہے جسے Run Length Encoding یا RLE مختصراً کہا جاتا ہے۔ رن لینتھ انکوڈنگ ایک ڈیٹا کمپریشن الگورتھم ہے جو دہرائے جانے والے حروف (سیریز) کو ایک حرف اور اس کی تکرار کی تعداد سے بدل دیتا ہے۔ ایک سلسلہ کئی ایک جیسے حروف پر مشتمل ایک ترتیب ہے۔ انکوڈنگ (پیکنگ، کمپریسنگ) کرتے وقت، ایک جیسے حروف کی ایک تار جو ایک سلسلہ بناتی ہے، اس کی جگہ ایک سٹرنگ ہوتی ہے جس میں خود دہرائے جانے والے کردار اور اس کی تکرار کی تعداد ہوتی ہے۔ لہذا اگر آپ کے پاس سٹرنگ ہے "hhhhhorrribleeeee" رن لینتھ انکوڈنگ ایک نتیجہ دیتی ہے: h5or3ible5۔ اگر آپ سٹرنگ کو ڈی کوڈ کرتے ہیں، تو آپ کو ترتیب وار چیک کرنا چاہیے کہ آیا آپ کے پاس کوئی ہندسہ ہے یا غیر ہندسہ والا حرف، اور اگر آپ کے پاس کوئی ہندسہ ہے، تو یہ معلوم کرنے کا وقت ہے کہ ہندسہ کیا ہے۔ ویسے آپ سب JPEG فائلوں کو جانتے ہیں۔ یہ فارمیٹ کوانٹائزڈ ڈیٹا پر ایک اخترن پیٹرن میں رن-لمبائی انکوڈنگ کے مختلف قسم کا استعمال کرتا ہے۔ ویرینٹ یہ ہے کہ صرف صفر ویلیو کے رنز کی لمبائی کو انکوڈ کیا جاتا ہے اور باقی تمام ویلیوز کو خود انکوڈ کیا جاتا ہے۔ ذیل کی مثال میں، ہم Character.isDigit(char ch) طریقہ استعمال کرتے ہیں تاکہ Run-length انکوڈنگ کے ساتھ انکوڈ شدہ سٹرنگ کو ڈی کوڈ کریں۔ اگر آپ دلچسپی رکھتے ہیں تو، پروگرام کو مکمل کرنے کی کوشش کریں، یا اس کے بجائے، اس کا پہلا حصہ بنائیں اور 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