دوال المقارنة الموجودة في الكلاس String
| إسم الدالة مع تعريفها | |
|---|---|
public boolean startsWith(String prefix)تستخدم لمعرفة ما إذا كان الـ String الذي قام باستدعائها يبدأ بنص معين أم لا.إذا كانت قيمة الباراميتر prefix موجودة في بدايته ترجع true, غير ذلك ترجع false.شاهد المثال » | |
public boolean endsWith(String suffix)تستخدم لمعرفة ما إذا كان الـ String الذي قام باستدعائها ينتهي بنص معين أم لا.إذا كانت قيمة الباراميتر prefix موجودة في نهايته ترجع true, غير ذلك ترجع false.شاهد المثال » | |
public boolean equals(Object anObject) تقارن قيمة الـ String الذي قام باستدعائها مع قيمة أي كائن نمرره لها مكان الباراميتر anObject.ترجع true في حال كانت جميع أحرفهم متطابقة, غير ذلك ترجع false.شاهد المثال » | |
public boolean equalsIgnoreCase(String str) تقارن قيمة الـ String الذي قام باستدعائها مع قيمة الـ String الذي نمرره لها مكان الباراميتر str.ترجع true في حال كانت جميع أحرفهم متطابقة و لا يهمها إذا كانت الأحرف كبير أو صغيرة, غير ذلك ترجع false.شاهد المثال » | |
public boolean contentEquals(StringBuffer sb) تقارن قيمة الـ String الذي قام باستدعائها مع قيمة كائن الـ StringBuffer الذي نمرره لها مكان الباراميتر sb.ترجع true في حال كانت جميع أحرفهم متطابقة, غير ذلك ترجع false.شاهد المثال » | |
public int compareTo(String anotherString)تقارن قيمة الـ String الذي قام باستدعائها مع قيمة الـ String الذي نمرره لها مكان الباراميتر anotherString.ترجع 0 في حال كانت جميع أحرفهم متساوية. و ترجع قيمة أكبر أو أصغر من 0 تمثل الفارق بين كود الـ ASCII الخاص بأول حرف مختلف تم إيجاده بينهما. شاهد المثال » | |
public int compareToIgnoreCase(String anotherString) تقارن قيمة الـ String الذي قام باستدعائها مع قيمة الـ String الذي نمرره لها مكان الباراميتر anotherString و لا يهمها إذا كانت الأحرف كبير أو صغيرة.ترجع 0 في حال كانت جميع أحرفهم متساوية. و ترجع قيمة أكبر أو أصغر من 0 تمثل الفارق بين كود الـ ASCII الخاص بأول حرف مختلف تم إيجاده بينهما. شاهد المثال » | |
public boolean matches(String regex) تقارن قيمة الـ String الذي قام باستدعائها مع التعبير النمطي الذي نمرره لها مكان الباراميتر regex.ترجع true في حال كانت جميع أحرفهم متطابقة, غير ذلك ترجع false.شاهد المثال » | |
public boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) تقارن جزء محدد في الـ String الذي قام باستدعائها مع جزء محدد في الـ String الذي نمرره لها مكان الباراميتر other.ترجع true في حال كانت جميع أحرفهم متطابقة, غير ذلك ترجع false.شاهد المثال » | |
الدالة startsWith()
تعريفها
تستخدم لمعرفة ما إذا كان الـ String الذي قام باستدعائها يبدأ بنص معين أم لا.
إذا كانت قيمة الباراميتر prefix موجودة في بدايته ترجع true, غير ذلك ترجع false.
عند إستدعاء هذه الدالة عندنا خيارين:
عدم تحديد من أين تبدأ, و في هذه الحالة ستبدأ من أول حرف في الـ
Stringالذي قام باستدعائها.تحديد من أين تبدأ.
بناؤها
هناك شكلين من هذه الدالة. أي يمكن إستدعاءها بطريقتين مختلفتين.
// الشكل الأول
public boolean startsWith(String prefix)
// الشكل الثاني
public boolean startsWith(String prefix, int toffset)
باراميترات
مكان البارميتر
prefixنمرر الـ substring الذي نريد معرفة ما إذا كان موجوداً في بداية الـStringأم لا.مكان البارميتر
toffsetنمرر الـ index الذي ستبدأ عملية الإختبار من عنده.
قيمة الإرجاع
ترجع true إذا كانت القيمة التي مررناها مكان الباراميتر toffset موجودة في بداية النص, أو في المكان الذي قمنا بتحديد بدأ عملية البحث عنده.
ترجع true أيضاً في حال قمنا باختبار قيمة فارغة.
غير ذلك ترجع false.
مثال
public class Main {
public static void main(String[] args) {
String str = "welcome to harmash.com";
System.out.println( str.startsWith("welcome to") ); // str لأنها موجودة في بداية النص true سترجع
System.out.println( str.startsWith("welc") ); // str لأنها موجودة في بداية النص true سترجع
System.out.println( str.startsWith("harmash") ); // str لأنها ليست موجودة في بداية النص false سترجع
System.out.println( str.startsWith("harmash", 11) ); // str رقم 11 في النص index لأنها موجودة في بداية الـ true سترجع
System.out.println( str.startsWith("") ); // لأننا نختبر قيمة فارغة true سترجع
}
}
•سنحصل على النتيجة التالية عند التشغيل.
true
true
false
true
true
__________&&&______;&&&___________;&&&&_____________;&&&
الدالة endsWith()
تعريفها
تستخدم لمعرفة ما إذا كان الـ String الذي قام باستدعائها ينتهي بنص معين أم لا.
إذا كانت قيمة الباراميتر prefix موجودة في نهايته ترجع true, غير ذلك ترجع false.
بناؤها
public boolean endsWith(String suffix)
باراميترات
مكان الباراميتر
suffixنمرر الـ substring الذي نريد معرفة ما إذا كان موجوداً في نهاية الـStringأم لا.
قيمة الإرجاع
ترجع true إذا كانت القيمة التي نختبرها موجودة في نهاية النص.
و ترجع true أيضاً في حال قمنا باختبار قيمة فارغة.
غير ذلك ترجع false.
مثال
public class Main {
public static void main(String[] args) {
String str = "welcome to harmash.com";
System.out.println( str.endsWith("harmash.com") ); // str لأنها موجودة في نهاية النص true سترجع
System.out.println( str.endsWith("harmash") ); // str لأنها ليست موجودة في نهاية النص false سترجع
System.out.println( str.endsWith("") ); // لأننا نختبر قيمة فارغة true سترجع
}
}
•سنحصل على النتيجة التالية عند التشغيل.
true
false
true
__________&&&______;&&&___________;&&&&_____________;&&&
الدالة equals()
تعريفها
تقارن قيمة الـ String الذي قام باستدعائها مع قيمة أي كائن نمرره لها مكان الباراميتر anObject.
ترجع true في حال كانت جميع أحرفهم متطابقة و لا تساوي الكلمة null, غير ذلك ترجع false.
بناؤها
public boolean equals(Object anObject)
باراميترات
مكان الباراميتر
anObjectنمرر الكائن الذي نريد مقارنته مع الـString.
قيمة الإرجاع
ترجع
trueفي حال كانت قيمة الكائن الذي نمرره مكان الباراميترanObjectتساوي الـStringالذي قام باستدعائها.ترجع
falseفي حال كانت قيمة الكائن الذي نمرره مكان الباراميترanObjectلا تساوي قيمة الـStringالذي قام باستدعائها.
مثال
public class Main {
public static void main(String[] args) {
String s1 = "hello my name is Mhamad";
String s2 = s1;
String s3 = "at 20 years old, i made harmash.com";
System.out.println( s1.equals(s2) ); // s2 تساوي قيمة s1 لأن قيمة true هنا سترجع
System.out.println( s1.equals(s3) ); // s3 لا تساوي قيمة s1 لأن قيمة false هنا سترجع
}
}
•سنحصل على النتيجة التالية عند التشغيل.
true
false
__________&&&______;&&&___________;&&&&_____________;&&&
الدالة equalsIgnoreCase()
تعريفها
تقارن قيمة الـ String الذي قام باستدعائها مع قيمة الـ String الذي نمرره لها مكان الباراميتر str.
ترجع true في حال كانت جميع أحرفهم متطابقة و لا يهمها إذا كانت الأحرف كبير أو صغيرة, غير ذلك ترجع false.
بناؤها
public boolean equalsIgnoreCase(String anotherString)
باراميترات
مكان الباراميتر
anotherStringنمرر الـStringالذي نريد مقارنته مع الـStringالذي قام باستدعاء الدالة.
قيمة الإرجاع
ترجع
trueفي حال كانت قيمة الـStringالذي نمرره مكان الباراميترanotherStringتساوي قيمة الـStringالذي قام باستدعائها.ترجع
falseفي حال كانت قيمة الـStringالذي نمرره مكان الباراميترanotherStringلا تساوي قيمة الـStringالذي قام باستدعائها.
مثال
public class Main {
public static void main(String[] args) {
String s1 = "hello my name is Mhamad";
String s2 = "HELLO MY NAME IS MHAMAD";
String s3 = s2;
// لأنه لا يهمها إذا كان يوجد إختلاف في حجم الأحرف طالما أن الأحرف التي تم مقارنتها هي نفسها true هنا سترجع
System.out.println( s1.equalsIgnoreCase(s2) );
// s3 تساوي تماماً قيمة s2 لأن قيمة true هنا سترجع
System.out.println( s2.equalsIgnoreCase(s3) );
}
}
•سنحصل على النتيجة التالية عند التشغيل.
true
true
__________&&&______;&&&___________;&&&&_____________;&&&
الدالة contentEquals()
تعريفها
تقارن قيمة الـ String الذي قام باستدعائها مع قيمة كائن الـ StringBuffer الذي نمرره لها مكان الباراميتر sb.
ترجع true في حال كانت جميع أحرفهم متطابقة, غير ذلك ترجع false.
بناؤها
public boolean contentEquals(StringBuffer sb)
باراميترات
مكان الباراميتر
sbنمرر كائن الـStringBufferالذي نريد مقارنته مع الـString.
قيمة الإرجاع
ترجع
trueفي حال كانت قيمة الكائن الذي نمرره مكان الباراميترsbتساوي قيمة الـStringالذي قام باستدعائها.ترجع
falseفي حال كانت قيمة الكائن الذي نمرره مكان الباراميترsbلا تساوي قيمة الـStringالذي قام باستدعائها.
مثال
public class Main {
public static void main(String[] args) {
String s = "welcome to harmash.com";
StringBuffer sb1 = new StringBuffer("welcome to harmash.com");
System.out.println( s.contentEquals(sb1) ); // sb1 تساوي قيمة s لأن قيمة true هنا سترجع
StringBuffer sb2 = new StringBuffer("welcome to java world");
System.out.println( s.contentEquals(sb2) ); // sb2 لا تساوي قيمة s لأن قيمة false هنا سترجع
}
}
•سنحصل على النتيجة التالية عند التشغيل.
true
false
__________&&&______;&&&___________;&&&&_____________;&&&
الدالة compareTo()
تعريفها
تقارن قيمة الـ String الذي قام باستدعائها مع قيمة أي كائن نمرره لها مكان الباراميتر anotherString أو anObject.
ترجع 0 في حال كانت جميع أحرفهم متساوية. و ترجع قيمة أكبر أو أصغر من 0 تمثل الفارق بين كود الـ ASCII الخاص بأول حرف مختلف تم إيجاده بينهما.
بناؤها
هناك شكلين من هذه الدالة. أي يمكن إستدعاءها بطريقتين مختلفتين.
// الشكل الأول
public int compareTo(Object anObject)
// الشكل الثاني
public int compareTo(String anotherString)
باراميترات
مكان الباراميتر
anObjectنمرر الكائن الذي ستتم مقارنته.مكان الباراميتر
anotherStringنمرر الـStringالذي ستتم مقارنته.
قيمة الإرجاع
ترجع 0 في حال كانت جميع أحرفهم متساوية.
ترجع قيمة أكبر أو أصغر من 0 تمثل الفارق بين كود الـ ASCII الخاص بأول حرف مختلف تم إيجاده بينهما.
مثال
public class Main {
public static void main(String[] args) {
// ASCII معلومة: في ترميز الـ
// h = 104 H = 72
String s1 = "welcome to harmash.com, one of the best websites for learning";
String s2 = "welcome to Harmash.com, amazing website for programmers";
String s3 = s1;
System.out.println( s1.compareTo(s2) ); // h - H = 104 - 72 = 32
System.out.println( s2.compareTo(s1) ); // h - H = 72 - 104 = -32
System.out.println( s1.compareTo(s3) ); // هنا سترجع 0 لأنه لا يوجد أي فارق بينهما
}
}
•سنحصل على النتيجة التالية عند التشغيل.
32
-32
0
__________&&&______;&&&___________;&&&&_____________;&&&
الدالة compareToIgnoreCase()
تعريفها
تقارن قيمة الـ String الذي قام باستدعائها مع قيمة الـ String الذي نمرره لها مكان الباراميتر str و لا يهمها إذا كانت الأحرف كبير أو صغيرة.
ترجع 0 في حال كانت جميع أحرفهم متساوية. و ترجع قيمة أكبر أو أصغر من 0 تمثل الفارق بين كود الـ ASCII الخاص بأول حرف مختلف تم إيجاده بينهما.
بناؤها
public int compareToIgnoreCase(String anotherString)
باراميترات
مكان الباراميتر
anotherStringنمرر الـStringالذي ستتم مقارنته.
قيمة الإرجاع
ترجع 0 في حال كانت جميع أحرفهم متساوية.
ترجع قيمة أكبر أو أصغر من 0 تمثل الفارق بين كود الـ ASCII الخاص بأول حرف مختلف تم إيجاده بينهما.
مثال
public class Main {
public static void main(String[] args) {
// ACII معلومة: في ترميز الـ
// A = 65 a = 97 o = 111
// ملاحظة: أثناء مقارنتهم ستعتبر جميع الأحرف أحرف صغيرة
// تساوي 97 Amazing الكبيرة في كلمة A لذلك ستعتبر الـ
String s1 = "welcome to harmash.com, one of the best websites for learning";
String s2 = "Welcome To Harmash.com, Amazing Website For Programmers";
String s3 = s1;
System.out.println( s1.compareToIgnoreCase(s2) ); // o - A = o - a = 111 - 97 = 14
System.out.println( s2.compareToIgnoreCase(s1) ); // A - o = a - o = 97 - 111 = 14
System.out.println( s1.compareToIgnoreCase(s3) ); // هنا سترجع 0 لأنه لا يوجد أي فارق بينهما
}
}
•سنحصل على النتيجة التالية عند التشغيل.
14
-14
0
__________&&&______;&&&___________;&&&&_____________;&&&
الدالة matches()
تعريفها
تختبر قيمة الـ String الذي قام باستدعائها لمعرفة ما إذا كان يطابق التعبير النمطي الذي نمرره لها مكان الباراميتر regex.
ترجع true في حال كان الـ String الذي قام باستدعائها يطابق التعبير النمطي, غير ذلك ترجع false.
بناؤها
public boolean matches(String regex)
باراميترات
مكان الباراميتر
regexنمرر نص عبارة عن مجموعة رموز يحدد النص الذي نريد معرفة ما إذا كان موجوداً في الـStringالذي قام باستدعائها أم لا.
قيمة الإرجاع
ترجع
trueفي حال كان الـStringالذي قام باستدعائها يطابق التعبير النمطي.ترجع
falseفي حال كان الـStringالذي قام باستدعائها لا يطابق التعبير النمطي.
مثال
public class Main {
public static void main(String[] args) {
String str = "welcome to harmash.com";
System.out.println( str.matches("harmash") ); // false ترجع
System.out.println( str.matches("welcome(.*)") ); // true ترجع
System.out.println( str.matches("(.*)harmash(.*)") ); // true ترجع
}
}
•سنحصل على النتيجة التالية عند التشغيل.
false
true
true
•أولاً سأل نفسه التالي: هل str يحتوي فقط على النص harmash؟
فكان جواب الشرط false.
•ثانياً سأل نفسه التالي: هل str يحتوي على النص welcome و يوجد بعده أي شيء آخر؟
فكان جواب الشرط true.
•ثالثاً سأل نفسه التالي: هل str يحتوي على النص harmash و يوجد قبله و بعده أي شيء آخر؟
فكان جواب الشرط true.
__________&&&______;&&&___________;&&&&_____________;&&&
الدالة regionMatches()
تعريفها
تقارن جزء محدد في الـ String الذي قام باستدعائها مع جزء محدد في الـ String الذي نمرره لها مكان الباراميتر other.
ترجع true في حال كانت جميع أحرفهم متطابقة, غير ذلك ترجع false.
بناؤها
هناك شكلين من هذه الدالة. أي يمكن إستدعاءها بطريقتين مختلفتين.
// الشكل الأول
public boolean regionMatches(int toffset, String other, int ooffset, int len)
// الشكل الثاني
public boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
باراميترات
مكان الباراميتر
toffsetنمرر رقم يحدد نقطة بداية الجزء الموجود في الـStringالذي قام باستدعاء الدالة.مكان الباراميتر
otherنمرر الـStringالذي سيتم مقارنته مع الـStringالذي قام باستدعاء الدالة.مكان الباراميتر
ooffsetنمرر رقم يحدد نقطة بداية الجزءother.مكان الباراميتر
lenنمرر عدد الأحرف التي نريدها أن تتقارن في كلا الجزأين.مكان الباراميتر
ignoreCaseإذا مررنا مكانه القيمةtrue, فلن تؤثر الأحرف الكبيرة أو الصغيرة عند المقارنة.
قيمة الإرجاع
ترجع
trueفي حال تطابق الجزأين.
مثال
public class Main {
public static void main(String[] args) {
String s1 = "welcome to harmash.com";
String s2 = "harmash";
String s3 = "HARMASH";
System.out.println( s1.regionMatches(11, s2, 0, 7) );
System.out.println( s1.regionMatches(11, s3, 0, 7) );
System.out.println( s1.regionMatches(true, 11, s3, 0, 7) );
}
}
•سنحصل على النتيجة التالية عند التشغيل.
true
false
true
__________&&&______;&&&___________;&&&&_____________;&&&