مقارنة سلسلة أغراض "String" لجافا لتحديد المساواة
يمكن ان تكون مقارنة سلسلة أغراض "String" لجافا بطرق عديدة كما هو مبين أدناه. بالإعتمادا على نوع المقارنة لسلسلة جافا الذي تحتاجه ، سنستخدم.
* مشغل ==
* منهج equals
* منهج compareTo
مقارنة باستخدام المشغل ==
يستخدم المشغل == عندما يكون لدينا مقارنة مراجع لكائن سلسلة. إذا يتجه إثان من متغيرات السلسلة "String variables" إلى نفس الكائن في الذاكرة ، فالمقارنة تعود بنعم "true". خلاف ذلك، فإن المقارنة ترجع بلا "false". علما أن المشغل '==' لا يقارن مضمون هذا النص في سلسلة الكائنات. فإنه يقارن فقط المراجع التي توجه اليهم السلسلتين. والبرنامج التالي سيقوم بطباعة "The strings are unequal" في الحالة الأولى، و "The strings are equal" في الحالة الثانية.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37public class StringComparision1 {
public static void main(String[] args) {
String name1 = "Bob";
String name2 = new String("Bob");
String name3 = "Bob";
// 1st case
if (name1 == name2) {
System.out.println("The strings are equal.");
} else {
System.out.println("The strings are unequal.");
}
// 2nd case
if (name1 == name3) {
System.out.println("The strings are equal.");
} else {
System.out.println("The strings are unequal.");
}
}
}
مقارنة باستخدام المنهج equals
يستخدم المنهج equals عندما نكون في حاجة لمقارنة محتوى النص الموجود في كائنات سلسلة "String objects". هذا المنهج يقوم بإرجاع صحيحا "true" عندما يكون إثنان من كائنات سلسلة "String objects" يحملان نفس المضمون (أي في نفس القيمة). والبرنامج التالي يقوم بطباعة "The strings are unequal" في الحالة الأولى، و "The strings are equal" في الحالة الثانية.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37public class StringComparision2 {
public static void main(String[] args) {
String name1 = "Bob";
String name2 = new String("Bob1");
String name3 = "Bob";
// 1st case
if (name1.equals(name2)) {
System.out.println("The strings are equal.");
} else {
System.out.println("The strings are unequal.");
}
// 2nd case
if (name1.equals(name3)) {
System.out.println("The strings are equal.");
} else {
System.out.println("The strings are unequal.");
}
}
}
مقارنة باستخدام المنهج compareTo
يستخدم المنهج compareTo عندما نحتاج لتحديد ترتيب السلاسل حسب الترتيب الأبجدي lexicographically. فإنه يقارن القيمة "char " بنفس الطريقة التي يقوم بها المنهج equals . المنهج compareTo يقوم بإرجاع عدد صحيح سالب إذا كان الكائن سلسلة الأول يسبق السلسلة الثانية. و يقوم بإرجاع صفر اذا كانت السلسلتين الاتي يجري مقارنتهما متساويتين. يقوم بإرجاع عدد صحيح موجب إذا كان السلسلة كائن الأولى تلى السلسلة الثانية. والبرنامج التالي يقوم بطباعة "name2 follows name1" في الحالة الأولى، و "name1 follows name3" في الحالة الثانية.