1. স্ট্রিং পরিবর্তন করা

জাভাতে, স্ট্রিংগুলি অপরিবর্তনীয় বস্তু। স্ট্রিং ক্লাসকে অত্যন্ত অপ্টিমাইজ করার জন্য এবং এটি সর্বত্র ব্যবহার করার অনুমতি দেওয়ার জন্য এটি করা হয়েছিল। উদাহরণস্বরূপ, হ্যাশম্যাপ সংগ্রহে কী হিসাবে ব্যবহারের জন্য শুধুমাত্র অপরিবর্তনীয় প্রকারগুলি সুপারিশ করা হয়

Stringযাইহোক, প্রায়ই এমন পরিস্থিতি দেখা দেয় যখন প্রোগ্রামাররা ক্লাসের পরিবর্তনযোগ্য হওয়াকে আরও সুবিধাজনক মনে করে । তারা এমন একটি শ্রেণী চায় যেটি প্রতিবার যখন এর একটি পদ্ধতি কল করা হয় তখন একটি নতুন সাবস্ট্রিং তৈরি করে না।

ঠিক আছে, ধরুন আমাদের একটি খুব বড় স্ট্রিং আছে এবং আমাদের ঘন ঘন এর শেষে কিছু যোগ করতে হবে। এই ক্ষেত্রে, এমনকি অক্ষরের একটি সংগ্রহ ( ArrayList<Character>) ক্রমাগত স্ট্রিং অবজেক্টগুলিকে পুনরায় তৈরি এবং সংযুক্ত করার চেয়ে আরও দক্ষ হতে পারে।

ঠিক এই কারণেই জাভা ভাষায় একটি স্ট্রিং-এর মতো টাইপ পরিবর্তন করা যেতে পারে। একে বলা হয় StringBuilder

একটি বস্তু তৈরি করা

একটি বিদ্যমান স্ট্রিং এর উপর ভিত্তি করে একটি বস্তু তৈরি করতে StringBuilder, আপনাকে একটি বিবৃতি কার্যকর করতে হবে যেমন:

StringBuilder name = new StringBuilder(string);

একটি খালি পরিবর্তনযোগ্য স্ট্রিং তৈরি করতে, আপনাকে এইরকম একটি বিবৃতি ব্যবহার করতে হবে:

StringBuilder name = new StringBuilder();

পদ্ধতির তালিকা

ক্লাসে StringBuilderদুই ডজন সহায়ক পদ্ধতি রয়েছে। এখানে সবচেয়ে গুরুত্বপূর্ণ হল:

পদ্ধতি বর্ণনা
StringBuilder append(obj)
পাস করা বস্তুটিকে একটি স্ট্রিং-এ রূপান্তরিত করে এবং বর্তমান স্ট্রিং-এ যুক্ত করে
StringBuilder insert(int index, obj)
পাস করা বস্তুটিকে একটি স্ট্রিং-এ রূপান্তর করে এবং বর্তমান স্ট্রিং-এ সন্নিবেশ করায়
StringBuilder replace(int start, int end, String str)
পাস করা স্ট্রিং দিয়ে start..end ব্যবধান দ্বারা নির্দিষ্ট করা স্ট্রিংয়ের অংশ প্রতিস্থাপন করে
StringBuilder deleteCharAt(int index)
স্ট্রিং থেকে নির্দিষ্ট সূচক সহ অক্ষরটি সরিয়ে দেয়
StringBuilder delete(int start, int end)
স্ট্রিং থেকে নির্দিষ্ট ব্যবধানের মধ্যে অক্ষরগুলি সরিয়ে দেয়
int indexOf(String str, int index)
বর্তমান স্ট্রিং এ একটি সাবস্ট্রিং অনুসন্ধান করে
int lastIndexOf(String str, int index)
শেষ থেকে শুরু করে বর্তমান স্ট্রিং-এ একটি সাবস্ট্রিং অনুসন্ধান করে
char charAt(int index)
পাস করা সূচকে স্ট্রিংয়ের অক্ষরটি ফেরত দেয়
String substring(int start, int end)
নির্দিষ্ট ব্যবধান দ্বারা সংজ্ঞায়িত সাবস্ট্রিং প্রদান করে
StringBuilder reverse()
বর্তমান স্ট্রিং বিপরীত করে।
void setCharAt(int index, char)
পাস করা অক্ষরে নির্দিষ্ট সূচকে অক্ষর পরিবর্তন করে
int length()
অক্ষরের মধ্যে স্ট্রিং এর দৈর্ঘ্য প্রদান করে

এখানে প্রতিটি পদ্ধতির একটি সংক্ষিপ্ত বিবরণ রয়েছে


2. পদ্ধতির বর্ণনা:

একটি স্ট্রিং সংযুক্ত করা

StringBuilderএকটি পরিবর্তনযোগ্য স্ট্রিং ( ) এ কিছু যোগ করতে , append()পদ্ধতিটি ব্যবহার করুন। উদাহরণ:

কোড বর্ণনা
StringBuilder builder = new StringBuilder("Hi");
builder.append("Bye");
builder.append(123);
Hi
HiBye
HiBye123

একটি স্ট্যান্ডার্ড স্ট্রিং রূপান্তর

StringBuilderএকটি বস্তুকে স্ট্রিং অবজেক্টে রূপান্তর করতে , আপনাকে কেবল এটির toString()পদ্ধতিতে কল করতে হবে। উদাহরণ

কোড আউটপুট
StringBuilder builder = new StringBuilder("Hi");
builder.append(123);
String result = builder.toString();
System.out.println(result);
Hi123

আমি কিভাবে একটি অক্ষর মুছে ফেলব?

একটি পরিবর্তনযোগ্য স্ট্রিং একটি অক্ষর মুছে ফেলার জন্য, আপনি deleteCharAt()পদ্ধতি ব্যবহার করতে হবে. উদাহরণ:

কোড আউটপুট
StringBuilder builder = new StringBuilder("Hello");
builder.deleteCharAt(2);
String result = builder.toString();
System.out.println(result);
Helo

আমি কিভাবে একটি স্ট্রিং এর অংশ অন্য স্ট্রিং দিয়ে প্রতিস্থাপন করব?

এ জন্য পদ্ধতি আছে replace(int begin, int end, String str)। উদাহরণ:

কোড আউটপুট
StringBuilder builder = new StringBuilder("Mellow");
builder.replace(2, 5, "Hello!");
String result = builder.toString();
System.out.println(result);
MeHello!w


3. স্ট্রিং দিয়ে কাজ করার দরকারী উদাহরণ

আমি কিভাবে একটি স্ট্রিং বিপরীত করতে পারি?

এটি করার জন্য একটি বিশেষ পদ্ধতি আছে — reverse(); উদাহরণ:

কোড আউটপুট
String str = "Hello";
StringBuilder builder = new StringBuilder(str);
builder.reverse();
String result = builder.toString();
System.out.println(result);
olleH

StringBufferক্লাস

আরেকটি ক্লাস আছে — স্ট্রিংবাফার, যেটি ক্লাসের একটি অ্যানালগ StringBuilder, কিন্তু এর পদ্ধতিগুলি synchronizedমডিফায়ার দিয়ে চিহ্নিত করা হয়েছে। এর মানে হল যে StringBufferবস্তুটি একাধিক থ্রেড থেকে একযোগে অ্যাক্সেস করা যেতে পারে।

কিন্তু এটি তুলনায় অনেক ধীর StringBuilder. আপনি যখন জাভা মাল্টিথ্রেডিং কোয়েস্টে মাল্টিথ্রেডিং সক্রিয়ভাবে অন্বেষণ করতে শুরু করেন তখন আপনার এই ক্লাসের প্রয়োজন হতে পারে ।