যে পদ্ধতিগুলি একটি বুলিয়ান মান প্রদান করে সেগুলি প্রায়শই "is" শব্দ দিয়ে শুরু হয় এবং এর অর্থ পরীক্ষা করা উপাদানটি একটি নির্দিষ্ট শর্তের সাথে মেলে কিনা। Character.isDigit () পদ্ধতি, যা আমরা এই নিবন্ধে আলোচনা করতে যাচ্ছি, নির্দিষ্ট চর মান একটি অঙ্ক কিনা তা নির্ধারণ করে।
Java isDigit পদ্ধতি সিনট্যাক্স
java.lang.Character.isDigit(char ch) হল জাভাতে একটি অন্তর্নির্মিত পদ্ধতি যা নির্দিষ্ট অক্ষরটি একটি সংখ্যা কিনা তা নির্ধারণ করে। জাভা প্রোগ্রামিং প্রসঙ্গে "একটি অঙ্ক" এর অর্থ কী? Java ডক-এর সংজ্ঞা অনুসারে, যদি Character.getType(ch) পদ্ধতিটি DECIMAL_DIGIT_NUMBER ধ্রুবক প্রদান করে, তাহলে অক্ষরটি একটি সংখ্যা। কিছু ইউনিকোড ক্যারেক্টার রেঞ্জ যা সংখ্যা ধারণ করে তা হল:-
'\u0030' থেকে '\u0039' পর্যন্ত ISO-ল্যাটিন-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 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 একটি অঙ্ক? চর উএ ডিজিট কি সত্য? মিথ্যা চার ua সংখ্যা? সত্য
Java isDigit পদ্ধতি, একটু বেশি জটিল উদাহরণ
আসুন Character.isDigit() ব্যবহার করার চেষ্টা করিআরও আকর্ষণীয় এবং বাস্তব জীবনের সমস্যায়। রান লেংথ এনকোডিং বা সংক্ষেপে RLE নামে একটি কম্প্রেশন পদ্ধতি রয়েছে। রান লেংথ এনকোডিং হল একটি ডেটা কম্প্রেশন অ্যালগরিদম যা পুনরাবৃত্তি করা অক্ষর (সিরিজ) একটি অক্ষর এবং এর পুনরাবৃত্তির সংখ্যা দিয়ে প্রতিস্থাপন করে। একটি সিরিজ হল একটি ক্রম যা বেশ কয়েকটি অভিন্ন অক্ষর নিয়ে গঠিত। এনকোডিং (প্যাকিং, কম্প্রেসিং) করার সময়, অভিন্ন অক্ষরগুলির একটি স্ট্রিং যা একটি সিরিজ তৈরি করে, একটি স্ট্রিং দ্বারা প্রতিস্থাপিত হয় যার মধ্যে পুনরাবৃত্তি করা অক্ষর এবং এর পুনরাবৃত্তির সংখ্যা থাকে। সুতরাং আপনার যদি একটি স্ট্রিং থাকে "hhhhhorrribleeeee" রান দৈর্ঘ্য এনকোডিং একটি ফলাফল দেয়: h5or3ible5। আপনি যদি স্ট্রিংটি ডিকোড করেন, আপনার ক্রমান্বয়ে পরীক্ষা করা উচিত আপনার কাছে একটি সংখ্যা বা অ-অঙ্কের অক্ষর আছে কিনা এবং আপনার যদি একটি অঙ্ক থাকে, তাহলে অঙ্কটি কী তা বোঝার সময় এসেছে৷ যাইহোক, আপনারা সবাই JPEG ফাইল জানেন। এই বিন্যাসটি কোয়ান্টাইজড ডেটার উপর একটি তির্যক প্যাটার্নে রান-দৈর্ঘ্যের এনকোডিংয়ের একটি বৈকল্পিক ব্যবহার করে। বৈকল্পিকটি হল যে শুধুমাত্র শূন্য মানের রানের দৈর্ঘ্য এনকোড করা হয় এবং অন্য সমস্ত মানগুলি নিজের মতো এনকোড করা হয়। নীচের উদাহরণে, আমরা ব্যবহার করিCharacter.isDigit(char ch) পদ্ধতি রান-লেংথ এনকোডিং সহ এনকোড করা একটি স্ট্রিং ডিকোড করার জন্য। আপনি যদি আগ্রহী হন, প্রোগ্রামটি সম্পূর্ণ করার চেষ্টা করুন, অথবা বরং, এটির প্রথম অংশ তৈরি করুন এবং 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
আপনি হয়তো লক্ষ্য করেছেন যে আমরা একটি স্ট্রিং ব্যবহার করছি না , কিন্তু একটি স্ট্রিংবিল্ডার । কেন? আসল বিষয়টি হল যে স্ট্রিং অপরিবর্তনীয়, এবং আমরা কাউন্টারটি বৃদ্ধি করি এবং প্রতিবার একটি নতুন স্ট্রিং তৈরি করা হবে। আমরা প্রোগ্রামে Character.digit পদ্ধতিও ব্যবহার করেছি। java.lang.Character.digit() একটি পদ্ধতি যা নির্দিষ্ট সংখ্যা পদ্ধতিতে ch অক্ষরের সাংখ্যিক মান প্রদান করে । যদি বেসটি MIN_RADIX <= base <= MAX_RADIX রেঞ্জে না থাকে, অথবা যদি নির্দিষ্ট বেসে ch একটি বৈধ সংখ্যা না হয়, পদ্ধতিটি -1 প্রদান করে।
GO TO FULL VERSION