دوال المقارنة الموجودة في الكلاس String في جافا

 

دوال المقارنة الموجودة في الكلاس 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.



مثال

Main.java
                    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.



مثال

Main.java
                    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 الذي قام باستدعائها.



مثال

Main.java
                    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 الذي قام باستدعائها.



مثال

Main.java
                    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 الذي قام باستدعائها.



مثال

Main.java
                    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 الخاص بأول حرف مختلف تم إيجاده بينهما.



مثال

Main.java
                    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 الخاص بأول حرف مختلف تم إيجاده بينهما.



مثال

Main.java
                    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 الذي قام باستدعائها لا يطابق التعبير النمطي.



مثال

Main.java
                    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 في حال تطابق الجزأين.



مثال

Main.java
                    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 
                  

__________&&&______;&&&___________;&&&&_____________;&&&