1. ক্লাসের Stringকাঠামো

আজ আমরা ক্লাস নিয়ে কথা বলব String। ints-এর পরে, স্ট্রিং ক্লাস হল জাভাতে সবচেয়ে জনপ্রিয় ক্লাস। এটি একেবারে সর্বত্র ব্যবহৃত হয়। এটিতে একগুচ্ছ দরকারী পদ্ধতি রয়েছে যা আপনি জেনে রাখা ভাল।

শ্রেণী Stringহল আদিম প্রকার ব্যতীত একমাত্র শ্রেণী যার আক্ষরিক বিবৃতিতে ব্যবহার করা যেতে পারে switch; কম্পাইলার একটি বিশেষ উপায়ে স্ট্রিং যোগ এবং স্ট্রিং অবজেক্ট পরিচালনা করে; Stringবস্তুগুলি একটি বিশেষ উপায়ে স্মৃতিতে সঞ্চিত হয়। মূলত, Stringক্লাস একটি খুব বিশেষ শ্রেণী।

এছাড়াও, Stringক্লাসটিতে একগুচ্ছ হেল্পার ক্লাস রয়েছে যার উদ্দেশ্য জাভাতে স্ট্রিংগুলির সাথে কাজ করা আরও সহজ করা। আপনি যখন এই সব শিখবেন, তখন অনেক কিছুই আপনার জন্য অনেক সহজ হয়ে যাবে। ঠিক আছে, আমরা এই ইকোসিস্টেমের একেবারে মূল থেকে শুরু করব — ক্লাসের সংগঠন String

অক্ষরের অ্যারে

ক্লাসের গঠন Stringআসলে খুবই সহজ: এর ভিতরে রয়েছে একটি ক্যারেক্টার অ্যারে (চার অ্যারে) যা স্ট্রিং এর সমস্ত অক্ষর সংরক্ষণ করে। উদাহরণস্বরূপ, এইভাবে 'হ্যালো' শব্দটি সংরক্ষণ করা হয়:

স্ট্রিং ক্লাসের গঠন
গুরুত্বপূর্ণ !

আসলে, এটি পুরোপুরি সঠিক নয়। যেহেতু Stringক্লাসটি অত্যন্ত গুরুত্বপূর্ণ, এটি প্রচুর অপ্টিমাইজেশন ব্যবহার করে এবং ডেটা অভ্যন্তরীণভাবে একটি অক্ষর অ্যারে হিসাবে নয়, কেবল একটি বাইট অ্যারে হিসাবে সংরক্ষণ করা হয়।


String2. ক্লাসের পদ্ধতি

ক্লাসের Stringঅনেকগুলি পদ্ধতি রয়েছে: এতে একা 18 জন কনস্ট্রাক্টর রয়েছে! তাই নীচে আমরা শুধুমাত্র তাদের সবচেয়ে মৌলিক উল্লেখ:

পদ্ধতি বর্ণনা
int length()
স্ট্রিং-এ অক্ষরের সংখ্যা প্রদান করে
boolean isEmpty()
স্ট্রিংটি একটি খালি স্ট্রিং কিনা তা পরীক্ষা করে
boolean isBlank()
চেক করে যে স্ট্রিংটিতে শুধুমাত্র হোয়াইটস্পেস অক্ষর রয়েছে: স্পেস, ট্যাব, নতুন লাইন, ইত্যাদি।
char charAt(int index)
স্ট্রিং-এ সূচক অবস্থানে অক্ষরটি ফেরত দেয়।
char[] toCharArray()
অক্ষরগুলির একটি অ্যারে (একটি অনুলিপি) প্রদান করে যা স্ট্রিং তৈরি করে
byte[] getBytes()
একটি স্ট্রিংকে বাইটের সেটে রূপান্তর করে এবং বাইটের অ্যারে প্রদান করে।
String[] split(String regex)
একটি স্ট্রিংকে একাধিক সাবস্ট্রিংয়ে বিভক্ত করে।
String join(CharSequence delimiter, elements)
একসাথে একাধিক সাবস্ট্রিং যোগ করে
String intern()
মধ্যে একটি স্ট্রিং রাখে string pool

আপনি জাভা কনস্ট্রাক্টর নিবন্ধে কনস্ট্রাক্টর সম্পর্কে আরও জানতে পারেন ।

আসুন একটি প্রোগ্রাম লিখি যা ইউনিক্স স্টাইল থেকে উইন্ডোজ স্টাইলে ফাইল পাথকে রূপান্তর করে। ইউনিক্স /ফোল্ডার আলাদা করতে অক্ষর ব্যবহার করে, যখন উইন্ডোজ \অক্ষর ব্যবহার করে।

সমাধান 1: একটি গৃহস্থালি অ্যারে ব্যবহার করে

কোড মন্তব্য
Scanner console = new Scanner(System.in);
String path = console.nextLine();

char[] chars = path.toCharArray();
for (int i = 0; i < chars.length; i++)
   if (chars[i] == '/')
      chars[i] = '\\';

String result = new String(chars);
System.out.println(result);
একটি স্ক্যানার অবজেক্ট তৈরি করুন
কনসোল থেকে একটি লাইন পড়ুন

একটি স্ট্রিংকে একটি অক্ষর অ্যারেতে রূপান্তর করুন
অক্ষরের উপর লুপ করুন
যদি অক্ষরটি হয় তবে /এটি
দিয়ে প্রতিস্থাপন করুন \। পলায়ন সম্পর্কে ভুলবেন না.

অক্ষর অ্যারের উপর ভিত্তি করে একটি নতুন স্ট্রিং তৈরি করুন।
স্ট্রিংটি প্রদর্শন করুন।

সমাধান 2:split()এবং join()পদ্ধতি ব্যবহার করে

কোড মন্তব্য
Scanner console = new Scanner(System.in);
String path = console.nextLine();

String[] array = path.split("/");


String result = String.join("\\", array);


System.out.println(result);
একটি স্ক্যানার অবজেক্ট তৈরি করুন
কনসোল থেকে একটি লাইন পড়ুন স্ট্রিংকে স্ট্রিংয়ের অ্যারেতে

রূপান্তর করুন । অক্ষরটি একটি বিভাজক হিসাবে ব্যবহৃত হয় (অতিরিক্ত দুটি স্ল্যাশ ডাবল এসকেপিংয়ের ফলাফল)। স্ট্রিং এর অ্যারে সমস্ত স্ট্রিং সংযুক্ত করুন । একটি বিভাজক হিসাবে ব্যবহার করা হয় (আমরা এটি পালিয়ে যেতে দেখি)। স্ট্রিংটি প্রদর্শন করুন। /
\

সমাধান 3: - replace(char oldChar, char newChar)পদ্ধতি ব্যবহার করে

কোড মন্তব্য
Scanner console = new Scanner(System.in);
String path = console.nextLine();

String result = path.replace('/', '\\');

System.out.println(result);
একটি স্ক্যানার অবজেক্ট তৈরি করুন
কনসোল থেকে একটি লাইন পড়ুন

সহজভাবে একটি অক্ষর অন্যটির সাথে প্রতিস্থাপন করুন
(দ্বিতীয়টি এস্কেপড)
স্ট্রিংটি প্রদর্শন করুন৷