Java-তে স্ট্রিং ম্যানিপুলেশন হলো স্ট্রিং নিয়ে বিভিন্ন প্রকার কার্য সম্পাদনের প্রক্রিয়া। স্ট্রিং একটি অক্ষরের ক্রম, যা Java-তে একটি অবজেক্ট হিসেবে সংরক্ষিত হয়। Java এর String ক্লাসে অনেক বিল্ট-ইন মেথড রয়েছে যা স্ট্রিং নিয়ে বিভিন্ন ধরনের অপারেশন করতে সহায়ক।
স্ট্রিং তৈরি করা
Java তে স্ট্রিং তৈরি করার দুটি প্রধান উপায় আছে:
String Literal ব্যবহার করে:
String str = "Hello";
String Object ব্যবহার করে:
String str = new String("Hello");
স্ট্রিং ম্যানিপুলেশন মেথডসমূহ
Java-র String ক্লাস বিভিন্ন স্ট্রিং ম্যানিপুলেশন মেথড প্রদান করে, যা স্ট্রিং-এর উপর বিভিন্ন ধরনের অপারেশন করতে ব্যবহার করা যায়।
১. length()
স্ট্রিং-এর দৈর্ঘ্য নির্ধারণ করতে length() মেথড ব্যবহার করা হয়।
উদাহরণ:
String str = "Hello World";
System.out.println("Length: " + str.length()); // Output: 11
২. charAt()
স্ট্রিং-এর নির্দিষ্ট ইনডেক্সের অক্ষর পেতে charAt() মেথড ব্যবহার করা হয়।
উদাহরণ:
String str = "Hello";
System.out.println("Character at index 1: " + str.charAt(1)); // Output: e
৩. substring()
স্ট্রিং-এর নির্দিষ্ট অংশ কেটে নেওয়ার জন্য substring() মেথড ব্যবহার করা হয়।
উদাহরণ:
String str = "Hello World";
System.out.println("Substring: " + str.substring(0, 5)); // Output: Hello
৪. toUpperCase() এবং toLowerCase()
স্ট্রিং-এর সকল অক্ষরকে বড় হাতের (uppercase) বা ছোট হাতের (lowercase) করতে toUpperCase() এবং toLowerCase() মেথড ব্যবহার করা হয়।
উদাহরণ:
String str = "Hello World";
System.out.println("Uppercase: " + str.toUpperCase()); // Output: HELLO WORLD
System.out.println("Lowercase: " + str.toLowerCase()); // Output: hello world
৫. concat()
দুটি স্ট্রিং একত্র করতে concat() মেথড ব্যবহার করা হয়। এটি + অপারেটরের মতো কাজ করে।
উদাহরণ:
String str1 = "Hello";
String str2 = "World";
System.out.println("Concatenated String: " + str1.concat(" ").concat(str2)); // Output: Hello World
৬. contains()
স্ট্রিং-এ নির্দিষ্ট অংশ রয়েছে কিনা তা পরীক্ষা করতে contains() মেথড ব্যবহার করা হয়।
উদাহরণ:
String str = "Hello World";
System.out.println("Contains 'World': " + str.contains("World")); // Output: true
৭. replace()
স্ট্রিং-এর নির্দিষ্ট অংশ প্রতিস্থাপন করতে replace() মেথড ব্যবহার করা হয়।
উদাহরণ:
String str = "Hello World";
System.out.println("Replaced String: " + str.replace("World", "Java")); // Output: Hello Java
৮. equals() এবং equalsIgnoreCase()
দুটি স্ট্রিং সমান কিনা তা পরীক্ষা করতে equals() এবং case insensitive সমতা যাচাই করতে equalsIgnoreCase() মেথড ব্যবহার করা হয়।
উদাহরণ:
String str1 = "Hello";
String str2 = "hello";
System.out.println("Equals: " + str1.equals(str2)); // Output: false
System.out.println("Equals Ignore Case: " + str1.equalsIgnoreCase(str2)); // Output: true
৯. trim()
স্ট্রিং-এর শুরু এবং শেষ থেকে ফাঁকা স্থান (whitespace) সরাতে trim() মেথড ব্যবহার করা হয়।
উদাহরণ:
String str = " Hello World ";
System.out.println("Trimmed String: '" + str.trim() + "'"); // Output: 'Hello World'
১০. split()
স্ট্রিং-এর নির্দিষ্ট অংশ বিভক্ত করতে split() মেথড ব্যবহার করা হয়। এটি একটি নির্দিষ্ট ডিলিমিটার অনুযায়ী স্ট্রিংকে অংশে ভাগ করে।
উদাহরণ:
String str = "Hello World Java";
String[] words = str.split(" ");
for (String word : words) {
System.out.println(word);
}
// Output:
// Hello
// World
// Java
উদাহরণ: বিভিন্ন স্ট্রিং ম্যানিপুলেশন একসাথে
public class StringManipulationExample {
public static void main(String[] args) {
String str = " Java Programming Language ";
// Length
System.out.println("Length: " + str.length());
// Trim
str = str.trim();
System.out.println("Trimmed: '" + str + "'");
// To Uppercase
System.out.println("Uppercase: " + str.toUpperCase());
// Substring
System.out.println("Substring: " + str.substring(5, 16));
// Replace
System.out.println("Replace 'Java' with 'Python': " + str.replace("Java", "Python"));
// Contains
System.out.println("Contains 'Programming': " + str.contains("Programming"));
// Split
String[] words = str.split(" ");
System.out.println("Split result:");
for (String word : words) {
System.out.println(word);
}
}
}
আউটপুট:
sql
Copy code
Length: 30
Trimmed: 'Java Programming Language'
Uppercase: JAVA PROGRAMMING LANGUAGE
Substring: Programming
Replace 'Java' with 'Python': Python Programming Language
Contains 'Programming': true
Split result:
Java
Programming
Language
স্ট্রিং ম্যানিপুলেশনের সুবিধা
- কোডের সংক্ষিপ্ততা: স্ট্রিং ম্যানিপুলেশন মেথডগুলো ব্যবহারের মাধ্যমে কোড ছোট এবং সহজভাবে লেখা যায়।
- পাঠযোগ্যতা বৃদ্ধি: কোডের স্ট্রিং ম্যানিপুলেশন পদ্ধতিগুলো পড়তে ও বুঝতে সহজ।
- মডিউলারিটি: বিভিন্ন মেথড ব্যবহার করে স্ট্রিং-এর নির্দিষ্ট অংশ আলাদাভাবে নিয়ন্ত্রণ করা যায়।
সারসংক্ষেপ
Java তে স্ট্রিং ম্যানিপুলেশন স্ট্রিং নিয়ে কাজ করার একটি অত্যন্ত গুরুত্বপূর্ণ অংশ, যার জন্য String ক্লাসের বিভিন্ন মেথড ব্যবহার করা হয়। এই মেথডগুলোর মাধ্যমে স্ট্রিং-এর দৈর্ঘ্য নির্ধারণ, অক্ষর পরিবর্তন, স্ট্রিং প্রতিস্থাপন, এবং স্ট্রিং বিভাজনসহ আরও অনেক কার্য সম্পাদন করা যায়, যা প্রোগ্রামের কার্যক্ষমতা ও পাঠযোগ্যতা বাড়াতে সহায়ক।
স্ট্রিং (String) হলো Java তে একটি বিশেষ ক্লাস, যা অক্ষরের সিরিজ বা চেইন সংরক্ষণ এবং ম্যানিপুলেট করতে ব্যবহৃত হয়। Java তে String ক্লাস java.lang প্যাকেজের অংশ, এবং এটি ইম্মিউটেবল অর্থাৎ, একবার তৈরি হলে এর মান পরিবর্তন করা যায় না।
String ক্লাসের বৈশিষ্ট্য
- ইম্মিউটেবল: একবার স্ট্রিং তৈরি হলে সেটির মান পরিবর্তন করা যায় না।
- String Pool: Java তে স্ট্রিং তৈরি করার সময় স্ট্রিং পুল ব্যবহার করা হয়, যাতে একই মানের একাধিক স্ট্রিং না তৈরি হয়ে মেমোরি সাশ্রয় হয়।
- সহজে ব্যবহারযোগ্য:
Stringক্লাসে বিভিন্ন বিল্ট-ইন মেথড রয়েছে, যা স্ট্রিং ম্যানিপুলেশনে সহায়ক।
String তৈরি করার দুটি উপায়
// লিটারেল ব্যবহার করে
String str1 = "Hello";
// new কীওয়ার্ড ব্যবহার করে
String str2 = new String("Hello");
String ক্লাসের কিছু গুরুত্বপূর্ণ মেথড
Java তে String ক্লাসের অনেক মেথড রয়েছে, যা স্ট্রিং ম্যানিপুলেশনে সহায়ক। নিচে কিছু সাধারণ এবং গুরুত্বপূর্ণ মেথড উল্লেখ করা হলো।
১. length()
length() মেথডটি স্ট্রিং-এর দৈর্ঘ্য প্রদান করে।
String str = "Hello World";
int length = str.length(); // আউটপুট: 11
২. charAt(int index)
charAt() মেথডটি নির্দিষ্ট ইনডেক্সের অক্ষর প্রদান করে।
String str = "Hello";
char ch = str.charAt(1); // আউটপুট: 'e'
৩. substring(int beginIndex), substring(int beginIndex, int endIndex)
substring() মেথডটি স্ট্রিংয়ের নির্দিষ্ট অংশ কেটে বের করে দেয়।
String str = "Hello World";
String sub1 = str.substring(6); // আউটপুট: "World"
String sub2 = str.substring(0, 5); // আউটপুট: "Hello"
৪. toUpperCase(), toLowerCase()
toUpperCase()মেথডটি স্ট্রিংয়ের সমস্ত অক্ষরকে বড় হাতের অক্ষরে রূপান্তরিত করে।toLowerCase()মেথডটি স্ট্রিংয়ের সমস্ত অক্ষরকে ছোট হাতের অক্ষরে রূপান্তরিত করে।
String str = "Hello World";
String upper = str.toUpperCase(); // আউটপুট: "HELLO WORLD"
String lower = str.toLowerCase(); // আউটপুট: "hello world"
৫. concat(String str)
concat() মেথডটি দুটি স্ট্রিং যুক্ত করে একটি নতুন স্ট্রিং তৈরি করে।
String str1 = "Hello";
String str2 = " World";
String result = str1.concat(str2); // আউটপুট: "Hello World"
৬. equals(Object another), equalsIgnoreCase(String anotherString)
equals()মেথডটি দুটি স্ট্রিং-এর মধ্যে অক্ষরগুলো সমান কি না যাচাই করে।equalsIgnoreCase()মেথডটি কেস ইগনোর করে দুটি স্ট্রিং-এর মধ্যে অক্ষরগুলো সমান কি না যাচাই করে।
String str1 = "Hello";
String str2 = "hello";
boolean isEqual = str1.equals(str2); // আউটপুট: false
boolean isEqualIgnoreCase = str1.equalsIgnoreCase(str2); // আউটপুট: true
৭. replace(char oldChar, char newChar), replace(CharSequence target, CharSequence replacement)
replace() মেথডটি স্ট্রিংয়ের নির্দিষ্ট অক্ষর বা অংশকে অন্য অংশ দিয়ে প্রতিস্থাপন করে।
String str = "Hello World";
String replaced = str.replace('o', 'a'); // আউটপুট: "Hella Warld"
String replacedAll = str.replace("World", "Java"); // আউটপুট: "Hello Java"
৮. contains(CharSequence sequence)
contains() মেথডটি স্ট্রিংয়ের মধ্যে নির্দিষ্ট অংশ আছে কি না তা যাচাই করে।
String str = "Hello World";
boolean hasHello = str.contains("Hello"); // আউটপুট: true
boolean hasJava = str.contains("Java"); // আউটপুট: false
৯. startsWith(String prefix), endsWith(String suffix)
startsWith()মেথডটি স্ট্রিং নির্দিষ্ট প্রিফিক্স দিয়ে শুরু হয়েছে কি না তা যাচাই করে।endsWith()মেথডটি স্ট্রিং নির্দিষ্ট সাফিক্স দিয়ে শেষ হয়েছে কি না তা যাচাই করে।
String str = "Hello World";
boolean starts = str.startsWith("Hello"); // আউটপুট: true
boolean ends = str.endsWith("World"); // আউটপুট: true
১০. trim()
trim() মেথডটি স্ট্রিংয়ের শুরু এবং শেষের ফাঁকা স্থান (whitespace) মুছে দেয়।
String str = " Hello World ";
String trimmed = str.trim(); // আউটপুট: "Hello World"
১১. split(String regex)
split() মেথডটি স্ট্রিংকে নির্দিষ্ট ডিলিমিটার দিয়ে ভাগ করে একটি অ্যারে রিটার্ন করে।
String str = "apple,banana,orange";
String[] fruits = str.split(","); // আউটপুট: ["apple", "banana", "orange"]
১২. valueOf()
valueOf() মেথডটি বিভিন্ন ধরনের ডেটাকে স্ট্রিং-এ রূপান্তরিত করে।
int number = 100;
String str = String.valueOf(number); // আউটপুট: "100"
উদাহরণ: String মেথড ব্যবহার করে একটি প্রোগ্রাম
public class StringMethodsExample {
public static void main(String[] args) {
String str = " Java Programming Language ";
System.out.println("Original String: " + str);
System.out.println("Length: " + str.length());
// ফাঁকা স্থান সরানো
String trimmedStr = str.trim();
System.out.println("Trimmed String: " + trimmedStr);
// ছোট হাতের অক্ষর
System.out.println("Lowercase: " + trimmedStr.toLowerCase());
// বড় হাতের অক্ষর
System.out.println("Uppercase: " + trimmedStr.toUpperCase());
// অংশ বের করা
System.out.println("Substring: " + trimmedStr.substring(5, 16));
// স্ট্রিং যোগ করা
System.out.println("Concat: " + trimmedStr.concat(" is powerful"));
// প্রতিস্থাপন
System.out.println("Replace: " + trimmedStr.replace("Java", "Python"));
// বিভাজন
String[] words = trimmedStr.split(" ");
System.out.println("Words:");
for (String word : words) {
System.out.println(word);
}
}
}
আউটপুট:
Original String: Java Programming Language
Length: 31
Trimmed String: Java Programming Language
Lowercase: java programming language
Uppercase: JAVA PROGRAMMING LANGUAGE
Substring: Programming
Concat: Java Programming Language is powerful
Replace: Python Programming Language
Words:
Java
Programming
Language
ব্যাখ্যা: এখানে বিভিন্ন স্ট্রিং মেথড ব্যবহার করে স্ট্রিং ম্যানিপুলেশনের উদাহরণ দেখানো হয়েছে।
সারসংক্ষেপ
- String ক্লাস Java তে অক্ষরের সিরিজ সংরক্ষণ এবং ম্যানিপুলেশনের জন্য ব্যবহৃত হয়।
- এটি ইম্মিউটেবল হওয়ায়, একবার তৈরি হলে স্ট্রিং পরিবর্তন করা যায় না।
Stringক্লাসে বিভিন্ন মেথড আছে, যা স্ট্রিং-এর দৈর্ঘ্য বের করা, নির্দিষ্ট অংশ খুঁজে বের করা, রূপান্তর, বিভাজন ইত্যাদি কাজে ব্যবহৃত হয়।
String ক্লাস এবং এর মেথডগুলো স্ট্রিং ম্যানিপুলেশনে সহায়ক, যা প্রোগ্রামের কার্যপ্রণালী এবং ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে সাহায্য করে।
Java-তে StringBuilder এবং StringBuffer হলো স্ট্রিং ম্যানিপুলেশনের দুটি বিশেষ ক্লাস, যা mutable (পরিবর্তনযোগ্য) স্ট্রিং তৈরিতে ব্যবহৃত হয়। সাধারণত String অবজেক্ট immutable (অপরিবর্তনীয়) হওয়ায় স্ট্রিং পরিবর্তন করার জন্য প্রতিবার নতুন অবজেক্ট তৈরি হয়। StringBuilder এবং StringBuffer সেই সমস্যা সমাধান করে।
StringBuilder এবং StringBuffer এর মূল বৈশিষ্ট্য
| বৈশিষ্ট্য | StringBuilder | StringBuffer |
|---|---|---|
| পরিবর্তনযোগ্যতা | পরিবর্তনযোগ্য | পরিবর্তনযোগ্য |
| থ্রেড নিরাপত্তা | থ্রেড নিরাপদ নয় | থ্রেড নিরাপদ |
| দ্রুততা | তুলনামূলকভাবে দ্রুত | তুলনামূলকভাবে ধীর |
| ব্যবহার | একক-থ্রেড পরিবেশে | মাল্টি-থ্রেড পরিবেশে |
StringBuilder
StringBuilder হলো একটি mutable স্ট্রিং ক্লাস, যা একক-থ্রেড পরিবেশে দ্রুত এবং কার্যকরী। এটি synchronized নয়, অর্থাৎ এটি থ্রেড নিরাপদ নয়, তবে এটি একই থ্রেডে কাজ করতে দ্রুত এবং কার্যকর।
StringBuilder ব্যবহার উদাহরণ
public class StringBuilderExample {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("Hello");
// Append মেথড ব্যবহার করে নতুন টেক্সট যুক্ত করা
sb.append(" World");
System.out.println("After Append: " + sb); // Output: Hello World
// Insert মেথড ব্যবহার করে নির্দিষ্ট স্থানে টেক্সট যুক্ত করা
sb.insert(5, " Java");
System.out.println("After Insert: " + sb); // Output: Hello Java World
// Replace মেথড ব্যবহার করে নির্দিষ্ট অংশ পরিবর্তন করা
sb.replace(6, 10, "Python");
System.out.println("After Replace: " + sb); // Output: Hello Python World
// Delete মেথড ব্যবহার করে নির্দিষ্ট অংশ মুছে ফেলা
sb.delete(5, 12);
System.out.println("After Delete: " + sb); // Output: Hello World
// Reverse মেথড ব্যবহার করে স্ট্রিং উল্টানো
sb.reverse();
System.out.println("After Reverse: " + sb); // Output: dlroW olleH
}
}
StringBuffer
StringBuffer একটি mutable স্ট্রিং ক্লাস যা মাল্টি-থ্রেড পরিবেশে ব্যবহারের জন্য উপযোগী। এটি synchronized হওয়ায় থ্রেড নিরাপদ এবং একাধিক থ্রেড একই StringBuffer অবজেক্টে কাজ করলেও ডেটা সুরক্ষিত থাকে।
StringBuffer ব্যবহার উদাহরণ
public class StringBufferExample {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("Hello");
// Append মেথড ব্যবহার করে নতুন টেক্সট যুক্ত করা
sb.append(" World");
System.out.println("After Append: " + sb); // Output: Hello World
// Insert মেথড ব্যবহার করে নির্দিষ্ট স্থানে টেক্সট যুক্ত করা
sb.insert(5, " Java");
System.out.println("After Insert: " + sb); // Output: Hello Java World
// Replace মেথড ব্যবহার করে নির্দিষ্ট অংশ পরিবর্তন করা
sb.replace(6, 10, "Python");
System.out.println("After Replace: " + sb); // Output: Hello Python World
// Delete মেথড ব্যবহার করে নির্দিষ্ট অংশ মুছে ফেলা
sb.delete(5, 12);
System.out.println("After Delete: " + sb); // Output: Hello World
// Reverse মেথড ব্যবহার করে স্ট্রিং উল্টানো
sb.reverse();
System.out.println("After Reverse: " + sb); // Output: dlroW olleH
}
}
StringBuilder এবং StringBuffer এর মেথডসমূহ
StringBuilder এবং StringBuffer একই ধরনের মেথড প্রদান করে, যার মাধ্যমে স্ট্রিং-এর উপর বিভিন্ন ধরনের অপারেশন করা যায়:
- append() - স্ট্রিং এর শেষে টেক্সট যুক্ত করা।
- insert() - নির্দিষ্ট ইনডেক্সে টেক্সট যুক্ত করা।
- replace() - নির্দিষ্ট অংশ পরিবর্তন করা।
- delete() - নির্দিষ্ট অংশ মুছে ফেলা।
- reverse() - স্ট্রিং-এর অক্ষরগুলো উল্টানো।
পার্থক্য: String, StringBuilder, এবং StringBuffer
| বৈশিষ্ট্য | String | StringBuilder | StringBuffer |
|---|---|---|---|
| পরিবর্তনযোগ্যতা | অপরিবর্তনীয় | পরিবর্তনযোগ্য | পরিবর্তনযোগ্য |
| থ্রেড নিরাপত্তা | থ্রেড নিরাপদ | থ্রেড নিরাপদ নয় | থ্রেড নিরাপদ |
| দ্রুততা | ধীর | তুলনামূলকভাবে দ্রুত | তুলনামূলকভাবে ধীর |
| ব্যবহার | অপরিবর্তনীয় ডেটা | একক থ্রেডেড পরিবেশে | মাল্টি-থ্রেডেড পরিবেশে |
কোনটি কখন ব্যবহার করবেন?
- String: যখন স্ট্রিং অপরিবর্তনীয় হবে এবং একবার সেট করা মান পরিবর্তন হবে না।
- StringBuilder: একক-থ্রেডেড পরিবেশে দ্রুত স্ট্রিং ম্যানিপুলেশনের প্রয়োজন হলে।
- StringBuffer: মাল্টি-থ্রেডেড পরিবেশে স্ট্রিং ম্যানিপুলেশনের প্রয়োজন হলে, যেখানে থ্রেড নিরাপত্তা গুরুত্বপূর্ণ।
সারসংক্ষেপ
Java-তে StringBuilder এবং StringBuffer ব্যবহার করে mutable স্ট্রিং ম্যানিপুলেশন করা যায়। StringBuilder একক-থ্রেডেড পরিবেশে দ্রুত এবং কার্যকরী, যেখানে StringBuffer মাল্টি-থ্রেডেড পরিবেশে থ্রেড নিরাপত্তার জন্য ব্যবহৃত হয়। বিভিন্ন মেথড ব্যবহার করে স্ট্রিং-এ টেক্সট যোগ, পরিবর্তন, মুছে ফেলা, এবং উল্টানো যায়, যা প্রোগ্রামের কার্যক্ষমতা এবং মেমোরি ব্যবস্থাপনা উন্নত করে।
Java-তে স্ট্রিং অপারেশন বলতে বোঝানো হয় স্ট্রিং নিয়ে বিভিন্ন ধরনের কাজ, যেমন স্ট্রিং-এর অংশ বের করা, স্ট্রিং যোগ করা, প্রতিস্থাপন করা ইত্যাদি। স্ট্রিং ম্যানিপুলেশনের জন্য Java তে অনেক বিল্ট-ইন মেথড রয়েছে, যা স্ট্রিং-এর ওপর বিভিন্ন অপারেশন সম্পাদনে সহায়ক। নিচে কিছু গুরুত্বপূর্ণ স্ট্রিং অপারেশন নিয়ে আলোচনা করা হলো।
সাধারণ স্ট্রিং অপারেশন
১. স্ট্রিং যোগ করা (Concatenation)
স্ট্রিং যোগ করতে + অপারেটর বা concat() মেথড ব্যবহার করা হয়। এটি দুই বা ততোধিক স্ট্রিং যুক্ত করে একটি নতুন স্ট্রিং তৈরি করে।
String str1 = "Hello";
String str2 = " World";
String result = str1 + str2; // আউটপুট: "Hello World"
String result2 = str1.concat(str2); // আউটপুট: "Hello World"
২. স্ট্রিংয়ের দৈর্ঘ্য বের করা (Length)
স্ট্রিংয়ের দৈর্ঘ্য বের করতে length() মেথড ব্যবহার করা হয়, যা স্ট্রিংয়ের মোট অক্ষরের সংখ্যা প্রদান করে।
String str = "Java Programming";
int length = str.length(); // আউটপুট: 16
৩. স্ট্রিং-এর নির্দিষ্ট অংশ বের করা (Substring)
substring() মেথড দিয়ে স্ট্রিংয়ের নির্দিষ্ট অংশ বের করা হয়। এটি দুটি ভেরিয়েন্টে আসে:
substring(int beginIndex): নির্দিষ্ট ইনডেক্স থেকে শুরু করে শেষ পর্যন্ত।substring(int beginIndex, int endIndex): নির্দিষ্ট শুরু এবং শেষ ইনডেক্সের মধ্যে।
String str = "Hello World";
String sub1 = str.substring(6); // আউটপুট: "World"
String sub2 = str.substring(0, 5); // আউটপুট: "Hello"
৪. অক্ষর পরিবর্তন করা (Replace)
replace() মেথড দিয়ে স্ট্রিংয়ের নির্দিষ্ট অক্ষর বা অংশকে নতুন অংশ দিয়ে প্রতিস্থাপন করা যায়।
String str = "Hello World";
String replacedStr = str.replace("World", "Java"); // আউটপুট: "Hello Java"
৫. স্ট্রিং বিভাজন (Split)
split() মেথড দিয়ে স্ট্রিংকে নির্দিষ্ট ডিলিমিটারের মাধ্যমে বিভক্ত করা যায় এবং এটি একটি অ্যারে প্রদান করে।
String str = "apple,banana,orange";
String[] fruits = str.split(","); // আউটপুট: ["apple", "banana", "orange"]
৬. স্ট্রিং তুলনা করা (Comparison)
স্ট্রিং তুলনা করতে equals(), equalsIgnoreCase(), এবং compareTo() মেথড ব্যবহার করা হয়।
String str1 = "Hello";
String str2 = "hello";
boolean isEqual = str1.equals(str2); // আউটপুট: false
boolean isEqualIgnoreCase = str1.equalsIgnoreCase(str2); // আউটপুট: true
int comparison = str1.compareTo("Hello"); // আউটপুট: 0 (সমান)
int comparison2 = str1.compareTo("Java"); // আউটপুট: > 0 (বড়)
৭. স্ট্রিং ছোট হাতের/বড় হাতের অক্ষরে রূপান্তর (Case Conversion)
toUpperCase() এবং toLowerCase() মেথড দিয়ে স্ট্রিংয়ের অক্ষরগুলো বড় বা ছোট হাতের অক্ষরে রূপান্তর করা যায়।
String str = "Hello World";
String upperStr = str.toUpperCase(); // আউটপুট: "HELLO WORLD"
String lowerStr = str.toLowerCase(); // আউটপুট: "hello world"
৮. স্ট্রিং-এর শুরু ও শেষের ফাঁকা স্থান মুছে ফেলা (Trim)
trim() মেথড স্ট্রিং-এর শুরু ও শেষের ফাঁকা স্থান (whitespace) সরিয়ে ফেলে।
String str = " Hello World ";
String trimmedStr = str.trim(); // আউটপুট: "Hello World"
স্ট্রিং অনুসন্ধান অপারেশন
৯. নির্দিষ্ট অক্ষর বা অংশ খুঁজে পাওয়া (IndexOf, LastIndexOf)
indexOf(): নির্দিষ্ট অক্ষর বা অংশ স্ট্রিংয়ে প্রথমবার কোথায় পাওয়া গেছে তা জানায়।lastIndexOf(): নির্দিষ্ট অক্ষর বা অংশ স্ট্রিংয়ে শেষবার কোথায় পাওয়া গেছে তা জানায়।
String str = "Hello World";
int index1 = str.indexOf('o'); // আউটপুট: 4
int index2 = str.lastIndexOf('o'); // আউটপুট: 7
int index3 = str.indexOf("World"); // আউটপুট: 6
১০. স্ট্রিং নির্দিষ্ট অংশ দিয়ে শুরু বা শেষ হয়েছে কিনা (StartsWith, EndsWith)
startsWith(): স্ট্রিং নির্দিষ্ট প্রিফিক্স দিয়ে শুরু হয়েছে কিনা যাচাই করে।endsWith(): স্ট্রিং নির্দিষ্ট সাফিক্স দিয়ে শেষ হয়েছে কিনা যাচাই করে।
String str = "Hello World";
boolean starts = str.startsWith("Hello"); // আউটপুট: true
boolean ends = str.endsWith("World"); // আউটপুট: true
উদাহরণ প্রোগ্রাম: স্ট্রিং অপারেশন
public class StringOperations {
public static void main(String[] args) {
String str = " Java Programming Language ";
// ১. ফাঁকা স্থান মুছে ফেলা
String trimmedStr = str.trim();
System.out.println("Trimmed String: " + trimmedStr);
// ২. দৈর্ঘ্য বের করা
System.out.println("Length: " + trimmedStr.length());
// ৩. ছোট ও বড় হাতের রূপান্তর
System.out.println("Uppercase: " + trimmedStr.toUpperCase());
System.out.println("Lowercase: " + trimmedStr.toLowerCase());
// ৪. অংশ বের করা
System.out.println("Substring: " + trimmedStr.substring(5, 16));
// ৫. প্রতিস্থাপন
System.out.println("Replace: " + trimmedStr.replace("Java", "Python"));
// ৬. বিভাজন
String[] words = trimmedStr.split(" ");
System.out.println("Words:");
for (String word : words) {
System.out.println(word);
}
// ৭. শুরু ও শেষ যাচাই
System.out.println("Starts with 'Java': " + trimmedStr.startsWith("Java"));
System.out.println("Ends with 'Language': " + trimmedStr.endsWith("Language"));
}
}
আউটপুট:
Trimmed String: Java Programming Language
Length: 24
Uppercase: JAVA PROGRAMMING LANGUAGE
Lowercase: java programming language
Substring: Programming
Replace: Python Programming Language
Words:
Java
Programming
Language
Starts with 'Java': true
Ends with 'Language': true
ব্যাখ্যা:
- এখানে বিভিন্ন স্ট্রিং অপারেশন করে স্ট্রিংয়ের অংশ বের করা, পরিবর্তন করা, ফাঁকা স্থান মুছে ফেলা ইত্যাদি কাজগুলো দেখানো হয়েছে।
সারসংক্ষেপ
- স্ট্রিং অপারেশন বলতে বোঝানো হয় স্ট্রিং নিয়ে বিভিন্ন ধরনের কাজ, যেমন যোগ, তুলনা, অংশ বের করা, বিভাজন ইত্যাদি।
- Java তে
Stringক্লাসে অনেক বিল্ট-ইন মেথড আছে, যা স্ট্রিং-এর ওপর বিভিন্ন অপারেশন সম্পাদনে সহায়ক।
স্ট্রিং অপারেশনগুলো প্রোগ্রামের লজিক ও ইউজার ইন্টারফেসে সহায়ক এবং ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে গুরুত্বপূর্ণ।
Read more