"হাই, অ্যামিগো!"
"কিন্তু, বিলাবো, তুমি আগেই হ্যালো বলেছ।"
"সত্যিই? আচ্ছা, আমি এখনও সেই বাক্যাংশ দিয়ে প্রতিটি পাঠ শুরু করতে পছন্দ করি।"
"আজ আমরা গভীরভাবে স্ট্রিং ক্লাস অধ্যয়ন করতে যাচ্ছি।"
"কিন্তু, আমি ইতিমধ্যে এটি সম্পর্কে সবকিছু জানি। এমনকি আমি জানি যে স্ট্রিং ক্লাস অপরিবর্তনীয়।"
"স্ট্রিং ক্লাসে 46টি পদ্ধতি রয়েছে। আপনি তাদের কতগুলি জানেন?"
"দশটির বেশি নয়। আসলে, সম্ভবত প্রায় 5 সর্বোচ্চ।"
"তাহলে শোন।"
"জাভার নির্মাতারা লক্ষ্য করেছেন যে প্রোগ্রামগুলির বেশিরভাগ স্ট্রিংগুলি পরিবর্তন করার উদ্দেশ্যে নয়, তবে কখনও কখনও সেগুলি পরিবর্তন করা হয়৷ আপনি যখন একটি স্ট্রিং তৈরি করেন তখন এটি খুব বিরক্তিকর হয়, এতে গুরুত্বপূর্ণ কিছু সংরক্ষণ করেন, এটি অন্য কারও পদ্ধতিতে পাস করেন এবং এটি পরিবর্তিত হয় এটা না ঘটতে, তারা পরিবর্তনযোগ্য এবং অপরিবর্তনীয় উভয় স্ট্রিং তৈরি করার সিদ্ধান্ত নিয়েছে।"
"স্ট্রিং ক্লাস অপরিবর্তনীয় স্ট্রিংগুলির জন্য, এবং স্ট্রিংবিল্ডার ক্লাসটি পরিবর্তনযোগ্যগুলির জন্য। এই শ্রেণীর অবজেক্টগুলি সহজেই অন্য প্রকারে রূপান্তরিত হয়। বেশিরভাগ ক্ষেত্রে, জাভা বিকাশকারীদের কেবল স্ট্রিং প্রয়োজন, যা প্রমাণ করে যে জাভা নির্মাতারা সঠিক ছিলেন।"
"তাই যদি আমার একটি স্ট্রিং প্রয়োজন হয়, আমি স্ট্রিং ক্লাস ব্যবহার করি। এবং যদি আমার একটি পরিবর্তনযোগ্য স্ট্রিং প্রয়োজন হয়, তাহলে আমি স্ট্রিংবিল্ডার ক্লাস ব্যবহার করব ?"
"হ্যাঁ। আসলে, StringBuffer নামে আরেকটি ক্লাস আছে। এটি StringBuilder-এর একটি অনুলিপি, এর সমস্ত পদ্ধতি সিঙ্ক্রোনাইজড হিসাবে ঘোষণা করা ছাড়া , যাতে প্রোগ্রামের বিভিন্ন থ্রেড থেকে বস্তুটি অ্যাক্সেস করা যায়।"
"এবং এই উদাহরণ সম্পর্কে কি? স্ট্রিং এখানে পরিবর্তন করা হয় না?"
String s = "cat";
s = s + "-" + s;
"না। এখানে দুটি স্ট্রিং অবজেক্ট আছে: «বিড়াল» এবং «বিড়াল-বিড়াল»। দ্বিতীয়টি প্রথমটি ব্যবহার করে তৈরি করা হয়েছে, কিন্তু প্রথম অবজেক্টটি পরিবর্তন হয় না। বাস্তবে, জিনিসগুলি এখানে অনেক বেশি আকর্ষণীয়। এখানে কোডটি রয়েছে কম্পাইলার তৈরি করে যখন এটি আপনার উদাহরণ কম্পাইল করে:"
String s = "cat";
StrinsBuilder s2 = new StringBuilder(s);
s2.append("-");
s2.append(s);
s = s2.toString();
"সুতরাং, স্ট্রিংবিল্ডার প্রায় সবসময়ই নতুন স্ট্রিং তৈরি করতে ব্যবহৃত হয়, কিন্তু কখনও কখনও কম্পাইলার আপনার জন্য সমস্ত কাজ করে। কিন্তু আপনার সংস্করণটি সহজ, আপনি কি মনে করেন না?"
"হ্যাঁ, এটা দুর্দান্ত যে জাভাতে এমন একটি উন্নত কম্পাইলার রয়েছে।"
"ঠিক আছে, এখন আসুন স্ট্রিং ক্লাসের পদ্ধতিগুলি দেখে নেওয়া যাক:"
1) আমি কিভাবে একটি স্ট্রিং এর দৈর্ঘ্য খুঁজে পেতে পারি?
" দৈর্ঘ্য পদ্ধতিটি একটি স্ট্রিং এর দৈর্ঘ্য (এতে অক্ষরের সংখ্যা) প্রদান করে।"
পদ্ধতি(গুলি) | উদাহরণ(গুলি) |
---|---|
|
|
|
2) আমি কিভাবে একটি স্ট্রিং থেকে একটি অক্ষর পেতে পারি?
" charAt পদ্ধতিটি একটি স্ট্রিং থেকে একটি অক্ষরকে তার সূচক দ্বারা ফেরত দেয়৷ অক্ষর সূচকগুলি 0 থেকে শুরু হয়৷
পদ্ধতি(গুলি) | উদাহরণ(গুলি) |
---|---|
|
|
|
3) আমি কিভাবে একটি স্ট্রিং থেকে অক্ষর পেতে পারি?
আমি কিভাবে একটি স্ট্রিং থেকে অক্ষর পেতে পারি?
পদ্ধতি(গুলি) | উদাহরণ(গুলি) |
---|---|
|
|
4) আমি কিভাবে স্ট্রিং তুলনা করব?
"ইকুয়ালস মেথড চেক করে স্ট্রিংস মেলে কিনা, এবং ইকুয়ালস আইগনোরকেস মেথড চেক করে যে কেস উপেক্ষা করা হলে স্ট্রিং মেলে কিনা।
পদ্ধতি(গুলি) | পদ্ধতি(গুলি) |
---|---|
|
|
|
|
5) কিভাবে আমি একটি স্ট্রিং বড় হাতের বা ছোট হাতের সব অক্ষর তৈরি করব?
" toUpperCase পদ্ধতিটি সমস্ত বড় হাতের অক্ষর সহ স্ট্রিংয়ের একটি অনুলিপি প্রদান করে।"
" toLowerCase পদ্ধতিটি সমস্ত ছোট হাতের অক্ষর সহ স্ট্রিংয়ের একটি অনুলিপি প্রদান করে।"
পদ্ধতি(গুলি) | উদাহরণ(গুলি) |
---|---|
|
|
ফলাফল:
|
|
|
|
ফলাফল:
|
6) আমি কিভাবে একটি স্ট্রিং এর শুরুতে এবং শেষে স্পেস মুছে ফেলব?
"ট্রিম পদ্ধতিটি একটি স্ট্রিং এর একটি অনুলিপি প্রদান করে যার শুরুতে এবং শেষে কোন হোয়াইটস্পেস অক্ষর নেই।"
পদ্ধতি(গুলি) | উদাহরণ(গুলি) |
---|---|
|
|
ফলাফল:
|
GO TO FULL VERSION