CodeGym/Java Blog/এলোমেলো/জাভাতে Append() পদ্ধতি: StringBuilder এবং StringBuffer
John Squirrels
লেভেল 41
San Francisco

জাভাতে Append() পদ্ধতি: StringBuilder এবং StringBuffer

এলোমেলো দলে প্রকাশিত
সদস্যগণ
append() হল StringBuilder এবং StringBuffer ক্লাসের একটি জাভা পদ্ধতি যা একটি বর্তমান ক্রম-এ কিছু মান যুক্ত করে। এমনকি যদি আপনি জানেন না যে append() পদ্ধতিটি কী, আপনি সম্ভবত এটি ইতিমধ্যেই অন্তর্নিহিতভাবে ব্যবহার করেছেন। এটি ঘটেছিল যখন আপনি + অপারেটর ব্যবহার করে জাভাতে স্ট্রিংগুলিকে সংযুক্ত করেছেন। মূল বিষয় হল জাভাতে স্ট্রিং কনক্যাটেনেশন স্ট্রিংবিল্ডার বা স্ট্রিংবাফার ক্লাস এবং তাদের অ্যাপেন্ড() পদ্ধতি ব্যবহার করে প্রয়োগ করা হয়।

স্ট্রিং, স্ট্রিংবাফার এবং স্ট্রিংবিল্ডার সম্পর্কে খুব সংক্ষেপে

আপনি সম্ভবত জানেন যে স্ট্রিং ক্লাস চূড়ান্ত (এতে কোনও চাইল্ড ক্লাস নেই) এবং অপরিবর্তনীয় (সৃষ্টির পরে এই শ্রেণীর উদাহরণগুলি পরিবর্তন করা যাবে না)। প্রকৃতপক্ষে, স্ট্রিং ক্লাসের অপরিবর্তনীয়তার কারণে, প্রতিটি অপারেশনের ফলে নতুন স্ট্রিং দৃষ্টান্ত তৈরি করা হয়, এবং পুরানোগুলি বাতিল করা হয়, প্রচুর আবর্জনা তৈরি করে। স্ট্রিং অবজেক্টে পরিবর্তনের কারণে অস্থায়ী আবর্জনা তৈরির সাথে মোকাবিলা করতে, আপনি স্ট্রিংবাফার বা স্ট্রিংবিল্ডার ক্লাস ব্যবহার করতে পারেন। পরের দুটির মধ্যে প্রধান পার্থক্য হল যে StringBuffer সিঙ্ক্রোনাইজ করা হয় যখন StringBuilder নয়। তাই, স্ট্রিংগুলির জন্য StringBuffer ব্যবহার করুন যেগুলি একটি মাল্টি-থ্রেডেড পরিবেশে ঘন ঘন পরিবর্তন করা হবে এবং একটি একক-থ্রেডেড পরিবেশের ক্ষেত্রে StringBuilder।জাভাতে Append() পদ্ধতি: StringBuilder এবং StringBuffer - 1

StringBuilder এবং StringBuffer-এ Append()

append() StringBuilder এবং StringBuffer ক্লাসের শীর্ষ পদ্ধতিগুলির মধ্যে একটি। এটি বর্তমান ক্রমটিতে একটি নতুন মান যুক্ত করে। StringBuffer এবং StringBuilder উভয় ক্লাসেই 13টি বিভিন্ন ওভারলোডেড অ্যাপেন্ড() পদ্ধতি রয়েছে । আসুন স্ট্রিংবিল্ডারের জন্য যুক্ত পদ্ধতিটি দেখি। যাইহোক, তারা StringBuffer এর ক্ষেত্রে ঠিক একই কাজ করে।
  • সর্বজনীন স্ট্রিংবিল্ডার সংযোজন (বুলিয়ান খ)
  • সর্বজনীন স্ট্রিংবিল্ডার সংযোজন (চার গ)
  • সর্বজনীন স্ট্রিংবিল্ডার সংযোজন(char[] str)
  • সর্বজনীন স্ট্রিংবিল্ডার সংযোজন(char[] str, int অফসেট, int লেন)
  • সর্বজনীন স্ট্রিংবিল্ডার সংযোজন (CharSequence cs)
  • পাবলিক স্ট্রিংবিল্ডার অ্যাপেন্ড (CharSequence cs, int start, int end)
  • সর্বজনীন স্ট্রিংবিল্ডার সংযোজন (ডবল ডি)
  • সর্বজনীন স্ট্রিংবিল্ডার সংযোজন (ফ্লোট চ)
  • সর্বজনীন স্ট্রিংবিল্ডার সংযোজন (int i)
  • সর্বজনীন স্ট্রিংবিল্ডার সংযোজন (দীর্ঘ lng)
  • পাবলিক স্ট্রিংবিল্ডার যুক্ত (অবজেক্ট অবজেক্ট)
  • সর্বজনীন স্ট্রিংবিল্ডার সংযোজন (স্ট্রিং স্ট্র)
  • সর্বজনীন স্ট্রিংবিল্ডার সংযোজন (স্ট্রিংবাফার এসবি)
আসুন তাদের কয়েকটির উপরে যাই এবং উদাহরণ সহ ব্যাখ্যা করি যে append() পদ্ধতিটি ঠিক কী করে।

Java.lang.StringBuilder.append(int i)

java.lang.StringBuilder.append(int i) একটি পদ্ধতি যা একটি বিদ্যমান স্ট্রিংবিল্ডার অবজেক্টে একটি পূর্ণসংখ্যা যোগ করার অনুমতি দেয়। চলুন Java.lang.StringBuilder.append(int i) ব্যবহার করার উদাহরণগুলি একবার দেখে নেওয়া যাক :
StringBuilder s = new StringBuilder(I love Java);
int i = 14;
//the method appends StringBuilder and integer
s.append(i);
System.out.println(s);
এখানে আউটপুট হবে:
আমি জাভা 14 ভালোবাসি
সেখানে কি ঘটেছিল? প্রথমত, আমরা "আই লাভ জাভা" মান দিয়ে s নামে একটি স্ট্রিংবিল্ডার তৈরি করেছি। তারপর append(int) ব্যবহার করে এটিতে একটি পূর্ণসংখ্যা 14 যোগ করা হয়েছে । কঠোরভাবে বলতে গেলে, আমরা একটি পূর্ণসংখ্যা নয়, কিন্তু স্ট্রিং "14" যোগ করেছি এবং "I love Java 14"-এ একটি আপডেট করা StringBuilder মান পেয়েছি। এইভাবে, পদ্ধতিটি আর্গুমেন্টটিকে একটি স্ট্রিংবিল্ডার অবজেক্টে পরিণত করে, এটিকে একটি বিদ্যমান স্ট্রিংবিল্ডার অবজেক্টের সাথে আবদ্ধ করে এবং একটি আপডেট করা রিটার্ন করে।

অবজেক্ট, int, বুলিয়ান এবং স্ট্রিং আর্গুমেন্টের জন্য StringBuilder append() উদাহরণ

সংখ্যা, স্ট্রিং, চর বা অ্যারে উপাদান সহ অন্যান্য ওভারলোড করা পদ্ধতিগুলির সাথে একই গল্প হবে। পাবলিক স্ট্রিংবিল্ডার অ্যাপেন্ড(অবজেক্ট অবজেক্ট) পদ্ধতি প্রদর্শনের জন্য একটি লেগোব্রিক ক্লাস এবং কালার এনাম তৈরি করি ।
//enum with colors
 public enum Color {
   RED, YELLOW, BLUE;
}
//LegoBrick Class code
public class LegoBrick {
   Color color;
   boolean isConnected;

   public void connect() {
       System.out.println("This brick is connected");
       this.isConnected = true;
   }

   public void disconnect() {
       System.out.println("Disconnected");
       isConnected = false;
   }

   public LegoBrick(Color color, boolean isConnected) {
       this.color = color;
       this.isConnected = isConnected;
   }

   public Color getColor() {
       return color;
   }

   public boolean isConnected() {
       return isConnected;
   }

   @Override
   public String toString() {
       return "LegoBrick{" +
              "color=" + color +
              ", isConnected=" + isConnected +
              '}';
   }
}
এখন একটি AppendDemo ক্লাস তৈরি করা যাক যেখানে আমরা স্ট্রিং, int, লেগোব্রিক এবং বুলিয়ান সহ একটি বেসিক স্ট্রিংবিল্ডার যুক্ত দেখাব। অদ্ভুত শোনাচ্ছে, কিন্তু এটা কাজ করে!
public class AppendDemo {

   public static void main(String[] args) {
       StringBuilder s = new StringBuilder("I love");
System.out.println(s)
//the method appends StringBuilder and String
       s.append(" Java");
       System.out.println(s);
//the method appends StringBuilder and int
       s.append(14);
       System.out.println(s);
       LegoBrick legoBrick = new LegoBrick(Color.RED, false);
//the method appends StringBuilder and LegoBrick
       s.append(legoBrick);
       System.out.println(s);
//the method appends StringBuilder and boolean
       System.out.println(s.append(5<7));
   }
}
আউটপুট হল:
আমি জাভা ভালবাসি আমি জাভা 14 ভালবাসি আমি Java14LegoBrick ভালবাসি
প্রথমে, আমরা স্ট্রিংবিল্ডার "আমি ভালোবাসি" তৈরি এবং প্রদর্শন করেছি, তারপর প্রথমে, তারপরে ক্রমানুসারে এটিতে যোগ করে append() পদ্ধতি ব্যবহার করে একটি স্ট্রিং, একটি int সংখ্যা, একটি অবজেক্টের একটি স্ট্রিং উপস্থাপনা এবং একটি বুলিয়ান।

স্ট্রিংবিল্ডার সংযোজন(char[] cstr, int সেট, int দৈর্ঘ্য)

আসুন তিনটি প্যারামিটার সহ append() পদ্ধতিটি দেখি। এটি স্ট্রিংটিতে একটি প্রদত্ত গৃহস্থালি অ্যারের একটি সাবয়ারের উপস্থাপনা যোগ করে। তাই এখানে:
  • cstr যুক্ত করা অক্ষরগুলির একটি অ্যারে
  • এটিকে প্রথম অক্ষরের সূচী সেট করুন যা সংযোজন করা হবে
  • দৈর্ঘ্য হল সংযোজন করা অক্ষরের পরিমাণ।
একইভাবে অন্যান্য append() পদ্ধতিতে, এটি একটি প্রসারিত StringBuilder অবজেক্ট প্রদান করে। এখানে জাভা অ্যাপ কোডের অংশ হিসেবে append(char[], cstr, int সেট, int length) ব্যবহার করার একটি উদাহরণ দেওয়া হল।
public class AppendDemo {
   // an example of using append(char[], cStr, int set, int length)

   public static void main(String[] args) {
       StringBuilder s = new StringBuilder("I love ");
      //here is a char's array, part of which we are going to append to s
       char[] cStr = new char[]
               {'c', 'o', 'd', 'e', 'J', 'a', 'v', 'a', '1', '4'};
       //we append 4 elements of cStr from the 4th element "J"
       s.append(cStr, 4, 4);
       System.out.println(s);
   }
}
আউটপুট হল:
আমি জাভা ভালোবাসি

CharSequence আর্গুমেন্ট সহ StringBuilder append() পদ্ধতি

আপনি দুটি পদ্ধতি লক্ষ্য করেছেন যেগুলির আর্গুমেন্ট হিসাবে CharSequence রয়েছে।
  • সর্বজনীন স্ট্রিংবিল্ডার সংযোজন (CharSequence cs)
  • পাবলিক স্ট্রিংবিল্ডার অ্যাপেন্ড (CharSequence cs, int start, int end)
সমস্ত নতুনরা জানেন না যে CharSequence একটি ইন্টারফেস। ডকুমেন্টেশন অনুসারে CharSequence হল char মানগুলির একটি পঠনযোগ্য ক্রম এবং এটি বিভিন্ন ধরণের char ক্রমগুলিতে অভিন্ন, শুধুমাত্র পঠনযোগ্য অ্যাক্সেস প্রদান করে৷ ইন্টারফেসটি স্ট্রিং, স্ট্রিংবাফার, স্ট্রিংবিল্ডার এবং আরও অনেক কিছু জাভা ক্লাস দ্বারা প্রয়োগ করা হয়৷ সুতরাং আপনি যদি আপনার প্রোগ্রাম, স্ট্রিং, স্ট্রিংবাফার বা স্ট্রিংবিল্ডারে কী ব্যবহার করা ভাল তা না জানেন তবে আপনি CharSequence ব্যবহার করতে পারেন। StringBuilder append(CharSequence cs, int start, int end) প্রায় append(char[] cstr, int সেট, int length) হিসাবে কাজ করেআমরা উপরে আলোচনা করেছি। যাইহোক, এই পদ্ধতিটি পরবর্তী এবং শেষের প্রথম উপাদানটি নির্দিষ্ট করে। এটি মনে রাখা গুরুত্বপূর্ণ যে শুরুটি পরবর্তীতে অন্তর্ভুক্ত করা হয়েছে, তবে শেষ নয় (অর্থাৎ, পরবর্তী উপাদানটি শেষের আগে আসা উপাদান)। কেন এমন হল? এটা জাভাতে ঠিক তেমনই। চলুন দেখা যাক CharSequence কি এবং append(CharSequence cs) এবং append(CharSequence cs, int start, int end) পদ্ধতি।
public class CharSequenceDemo {

   public static void printCharSequence(CharSequence ch) {
       System.out.println(ch);
   }
       public static void main(String[] args) {
           CharSequence myString = new String("This is String ");
           printCharSequence(myString);
           CharSequence myStringBuilder = new StringBuilder("This is StringBuilder ");
           printCharSequence(myStringBuilder);
           StringBuilder s = new StringBuilder("my StringBuilder ");
//StringBuilder.append
s.append(myStringBuilder);
           System.out.println(s);
//StringBuilder.append
           s.append(myString);
           System.out.println(s);
           s.append(myString, 5,7);
           System.out.println(s);
       }
   }
আউটপুট হল:
এটি স্ট্রিং এটি স্ট্রিংবিল্ডার আমার স্ট্রিংবিল্ডার এটি স্ট্রিংবিল্ডার আমার স্ট্রিংবিল্ডার এটি স্ট্রিংবিল্ডার এটি স্ট্রিং আমার স্ট্রিংবিল্ডার এটি স্ট্রিংবিল্ডার এটি স্ট্রিং
আমরা দুটি CharSequence তৈরি করেছি, স্ট্রিং এবং স্ট্রিংবিল্ডারকে আবদ্ধ করেছি এবং সেগুলি মুদ্রণ করেছি। আমরা সরাসরি myStringBuilder-এ append() পদ্ধতি প্রয়োগ করতে পারি না, যেহেতু CharSequence-এ এই পদ্ধতি নেই (যদি আপনি কেন বুঝতে না পারেন, তাহলে আপনাকে উত্তরাধিকারের পাশাপাশি রেফারেন্সের ধরনগুলিকে প্রসারিত এবং সংকীর্ণ করার বিষয়ে চিন্তা করতে হবে)। অতএব, আমরা একটি স্ট্রিংবিল্ডার তৈরি করি এবং উভয় CharSequence-এর সাথে ক্রমানুসারে অ্যাপেন্ড পদ্ধতি ব্যবহার করে সংযুক্ত করি। শেষে আমরা আমাদের স্ট্রিংবিল্ডারকে অনুসৃতি “is” দিয়ে যুক্ত করেছি (“i” হল myStringBuilder-এর একটি 5 তম উপাদান এবং s হল 6 তম। মনে রাখবেন যে পদ্ধতিতে, শেষ হিসাবে নির্দিষ্ট করা উপাদানটি পরবর্তী থেকে বাদ দেওয়া হয়েছে।

StringBuffer append() সম্পর্কে কি?

StringBuffer.append- এও পদ্ধতির 13টি রূপ রয়েছে এবং তারা StringBuilder-এর মতো ঠিক একইভাবে কাজ করে।
  • পাবলিক স্ট্রিংবাফার সংযোজন (বুলিয়ান খ)
  • সর্বজনীন স্ট্রিংবাফার সংযোজন (চার গ)
  • সর্বজনীন স্ট্রিংবাফার সংযোজন(char[] str)
  • সর্বজনীন স্ট্রিংবাফার সংযোজন (char[] str, int অফসেট, int লেন)
  • সর্বজনীন স্ট্রিংবাফার সংযোজন (ডবল ডি)
  • সর্বজনীন স্ট্রিংবাফার সংযোজন (ফ্লোট চ)
  • সর্বজনীন স্ট্রিংবাফার সংযোজন (int i)
  • পাবলিক স্ট্রিংবাফার সংযোজন (দীর্ঘ দৈর্ঘ্য)
  • সর্বজনীন স্ট্রিংবাফার সংযোজন (চ্যারসিকোয়েন্সগুলি)
  • পাবলিক স্ট্রিংবাফার অ্যাপেন্ড—(CharSequence s, int start, int end)
  • সর্বজনীন স্ট্রিংবাফার সংযোজন (অবজেক্ট অবজেক্ট)
  • সর্বজনীন স্ট্রিংবাফার সংযোজন (স্ট্রিং স্ট্র)
  • সর্বজনীন স্ট্রিংবাফার সংযোজন (স্ট্রিংবাফার এসবি)
একটি সাবস্ট্রিংয়ে যোগ দিতে StringBuffer.append এর একটি উদাহরণ দেওয়া যাক । আমরা শুধু StringBuilder উদাহরণ গ্রহণ করি এবং কোডের সমস্ত StringBuilders কে StringBuffers-এ পরিবর্তন করি।
public class AppendDemo {
   // an example of using append(char[], cStr, int set, int length)

   public static void main(String[] args) {
       StringBuffer s = new StringBuffer("I love ");
      //here is a char's array, part of which we are going to append to s
       char[] cStr = new char[]
               {'c', 'o', 'd', 'e', 'J', 'a', 'v', 'a', '1', '4'};
       //we append 4 elements of cStr from the 4th element "J"
//with StringBuffer.append
       s.append(cStr, 4, 4);
       System.out.println(s);
//StringBuffer.append adds int 14 to s
s.append(14);
System.out.println(s);
   }
}
আউটপুট হল:
আমি জাভা ভালোবাসি আমি Java14 ভালোবাসি
আপনি এই নিবন্ধের প্রতিটি উদাহরণ দিয়ে এটি করতে পারেন. তারা কাজ করবে!

উপসংহার

যেহেতু StringBuilder এবং StringBuffer বেশিরভাগ ফাংশন ভাগ করে, এতে অবাক হওয়ার কিছু নেই যে উভয় শ্রেণীরই append() পদ্ধতি ব্যবহার করার একই উপায় রয়েছে । এটা ডেভেলপারদের জন্য ভালো খবর — আপনাকে প্রতিটি ক্লাসের জন্য আলাদা পদ্ধতি শিখতে হবে না। এটি বলার পরে, append() ব্যবহার করার বিভিন্ন উপায় বিবেচনা করে , একটি স্ট্রিং-এ বিভিন্ন ডেটা প্রকারের উপস্থাপনা যোগ করে কয়েক ঘন্টা অনুশীলন করা নিশ্চিত করুন।
মন্তব্য
  • জনপ্রিয়
  • নতুন
  • পুরানো
মন্তব্য লেখার জন্য তোমাকে অবশ্যই সাইন ইন করতে হবে
এই পাতায় এখনও কোনো মন্তব্য নেই