সমতার জন্য স্ট্রিং তুলনা করার জন্য, আপনার স্ট্রিং অবজেক্টের equals
ব্যবহার করা উচিত অথবা equalsIgnoreCase
পদ্ধতি আমরা কেন ==
ব্যবহার করব না তাও দেখব স্ট্রিং তুলনা করার জন্য অপারেটর।
সমান () পদ্ধতির সাথে স্ট্রিং তুলনা করা
যদি আমাদের জাভাতে দুটি স্ট্রিং তুলনা করতে হয় এবং স্ট্রিংগুলির কেসিং সম্পর্কেও যত্ন নিতে হয় তবে আমরা equals()
ব্যবহার করতে পারি। পদ্ধতি।
উদাহরণ স্বরূপ, নিচের স্নিপেট নির্ধারণ করবে যে কেসিং সহ সমস্ত অক্ষরে স্ট্রিং-এর দুটি উদাহরণ সমান কিনা:
public class CompareTwoStrings {
public static void main(String[] args) {
String firstString = "Test123";
String secondString = "Test" + 123;
String thirdString = "TEST123";
if (firstString.equals(secondString)) {
System.out.println("first and second strings are equal");
}
if (firstString.equals(thirdString)) {
System.out.println("first and third string are equal");
}
}
}
আউটপুট:
first and second strings are equal
দ্রষ্টব্য:দ্বিতীয় মুদ্রণ বিবৃতিটি কার্যকর হয় না কারণ প্রথম স্ট্রিং এবং তৃতীয় স্ট্রিং এর কেসিং মেলে না। EqualsIgnoreCase() পদ্ধতির সাথে স্ট্রিংগুলির তুলনা করা
যদি আমাদের জাভাতে দুটি স্ট্রিং তুলনা করতে হয় কিন্তু স্ট্রিংগুলির কেসিং সম্পর্কে চিন্তা না করি তাহলে আমরা equalsIgnoreCase()
ব্যবহার করতে পারি। পদ্ধতি।
উদাহরণস্বরূপ, উপরের কোড স্নিপেটে, যদি আমরা .equals()
প্রতিস্থাপন করি .equalsIgnoreCase()
এর সাথে পদ্ধতি, তারপর উভয় মুদ্রণ বিবৃতি কার্যকর করা হয়:
public class CompareTwoStrings {
public static void main(String[] args) {
String firstString = "Test123";
String secondString = "Test" + 123;
String thirdString = "TEST123";
if (firstString.equalsIgnoreCase(secondString)) {
System.out.println("first and second strings are equal");
}
if (firstString.equalsIgnoreCase(thirdString)) {
System.out.println("first and third string are equal");
}
}
}
আউটপুট:
first and second strings are equal
first and third string are equal
সম্পর্কিত:
- কেন জাভাতে toString() ওভাররাইড করুন
- কিভাবে জাভাতে স্ট্রিং রিভার্স করতে হয়
- কীভাবে একটি স্ট্রিং থেকে সংখ্যা বের করতে হয়
- কিভাবে জাভাতে স্ট্রিংকে Int-এ রূপান্তর করবেন
স্ট্রিং তুলনা করার জন্য ==অপারেটর ব্যবহার করবেন না
দ্রষ্টব্য:জাভাতে দুটি স্ট্রিং তুলনা করার সময়, আমাদের == ব্যবহার করা উচিত নয় অথবা != অপারেটরএই অপারেটররা আসলে রেফারেন্স পরীক্ষা করে, এবং যেহেতু একাধিক স্ট্রিং অবজেক্ট একই স্ট্রিংকে উপস্থাপন করতে পারে, তাই এটি ভুল উত্তর দিতে দায়বদ্ধ৷
পরিবর্তে, String.equals(Object)
ব্যবহার করুন পদ্ধতি, যা স্ট্রিং অবজেক্টকে তাদের মানের উপর ভিত্তি করে তুলনা করবে।
public class CompareTwoStrings {
public static void main(String[] args) {
String firstString = "Test123";
String secondString = "Test123";
String thirdString = new String("Test123");
if (firstString == secondString) {
System.out.println("first and second strings are equal");
}
if (firstString == thirdString) {
System.out.println("first and third strings are equal");
}
}
}
আউটপুট:
first and second strings are equal
দ্রষ্টব্য:দ্বিতীয় মুদ্রণ বিবৃতি কার্যকর করা হয় না। ধ্রুবক মানের সাথে স্ট্রিং তুলনা করা
একটি ধ্রুবক মানের সাথে একটি স্ট্রিং তুলনা করার সময়, আপনি একটি NullPointerException
পাবেন না তা নিশ্চিত করতে আপনি সমান এর বাম দিকে ধ্রুবক মান রাখতে পারেন। যদি অন্য স্ট্রিং নাল হয়।
যেমন:
"baz".equals(foo)
যখন foo.equals("baz")
একটি NullPointerException
নিক্ষেপ করবে যদি foo নাল হয়, "baz".equals(foo)
false
তে মূল্যায়ন করবে .
আরও পঠনযোগ্য বিকল্প হল Objects.equals()
ব্যবহার করা , যা উভয় প্যারামিটারে একটি শূন্য পরীক্ষা করে:
যেমন Objects.equals(foo, "baz")
.
একটি সুইচ স্টেটমেন্টে স্ট্রিং তুলনা করা
জাভা 1.7 অনুযায়ী, একটি সুইচ স্টেটমেন্টে একটি স্ট্রিং ভেরিয়েবলকে লিটারেলের সাথে তুলনা করা সম্ভব। নিশ্চিত করুন যে স্ট্রিংটি নাল নয়, অন্যথায় এটি সর্বদা একটি NullPointerException
নিক্ষেপ করবে . String.equals
ব্যবহার করে মান তুলনা করা হয় , যেমন কেস সংবেদনশীল।
public class CompareTwoStrings {
public static void main(String[] args) {
String stringToSwitch = "A";
switch (stringToSwitch) {
case "a":
System.out.println("a");
break;
case "A":
System.out.println("A"); //the code goes here
break;
case "B":
System.out.println("B");
break;
default:
break;
}
}
}
উপসংহার
এই পোস্টে আমরা ব্যাখ্যা করেছি কিভাবে জাভাতে স্ট্রিংকে কোড উদাহরণের সাথে তুলনা করা যায়। যখন স্ট্রিংগুলির আবরণ গুরুত্বপূর্ণ, তখন আমাদের .equals()
ব্যবহার করা উচিত এবং যখন কেসিং গুরুত্বপূর্ণ নয়, তখন আমাদের .equalsIgnoreCase()
ব্যবহার করা উচিত .
তাছাড়া, আমাদের ==
ব্যবহার করা উচিত নয় ==
হিসাবে স্ট্রিং তুলনা করতে অপারেটর অপারেটর রেফারেন্স চেক করে মান নয়।