مقارنة السلاسل النصية فى الجافا Comparing Strings in java
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: أساسيات اللغة Java Basics
صفحة 1 من اصل 1 • شاطر
مقارنة السلاسل النصية فى الجافا Comparing Strings in java
أهلا بكم
في لغة جافا يُعرف النص بأنه مجموعة من الحروف Characters المتلاصقة والتي تُوضع بين علامتي تنصيص كما ترى أدناه
و بشكل عام يمكن القول ان مقارنة السلاسل النصية فى الجافا يقصد بها التأكد مِن أن سِلسِلتين نصيتين مُتساويتين أم لا و يتم ذلك من خلال ثلاث طريق :
1_باستخادم الدالة equals
2_ باستخدام المعامل = =
3_باستخدام الدالة compareTo
أولا : كيفية استخدام الدالة equals
يقارن أسلوب equals بين سِلسِلتين نصيتين بما تحتوية من احرف. فإذا لم يتم مطابقة أي حرف ، فسيتم عرض القيمة false. وإذا تمت مطابقة جميع الأحرف ، فسيتم عرضه true ...و بالتالى فهي حساسة لحالة الاحرف سواء كانت capital letters او small letters ....ويتم المقارنة على النحو التالى :
هنا قمنا بمقارنة النص الاول فى المتغير s1 مع النص فى المتغير الثاني s2 و النتيجة كانت true وذلك لكون النصين واحد بنفس حالة الاحرف small letters
مثال اخر :
هنا قمنا بمقارنة النص الاول فى المتغير s1 مع النص فى المتغير الثاني s2 و النتيجة كانت false وذلك لكون النص الاول بأخرف صغيرة small letters فى حين أن النص الثانى بدء باخرف كبيرة
لذلك توفر الجافا الطريقة equalsIgnoreCase والتى تستخدم فى مقارنة بين سِلسِلتين نصيتين بما تحتوية قيم و ليس الاحرف ...بمعنى انها تقارن القيم بغض النظر على حالة الاحرف مثال :
ثانيا : كيفية استخدام المعامل = =
يتم استخدام المعامل = = للمقارنة بين طريقة الاسناد للمتغيرات وليس القيم ...مثال اكثر توضحا :
ثالثا :استخدام الدالة compareTo
يقارن أسلوب #compareTo للمقارنة بين عدد احرف السلسة النصية و ترجع بقيمة رقمية من نوع int بقيمة المقارنة ...مثال للتوضيح
فى المثال اعلاه قمنا بمقارنة النص المخزن فى المتغير s1 مع المتغير s2 باستخدام الدالة #compareTo و كانت النتيجة 0 ذلك لكونها يمتلكان نفس عدد الاحرف 6 .....لكن عند مقارنة s1 مع s3 كانت النتيجة 1 و ذلك لكون النص الاول عدد احرفة 6 أكبر من عدد الاحرف 5 فى النص الثانى وكانت نتيجة المقارنة بالفرق
في لغة جافا يُعرف النص بأنه مجموعة من الحروف Characters المتلاصقة والتي تُوضع بين علامتي تنصيص كما ترى أدناه
- الكود:
String name = "Test123";
و بشكل عام يمكن القول ان مقارنة السلاسل النصية فى الجافا يقصد بها التأكد مِن أن سِلسِلتين نصيتين مُتساويتين أم لا و يتم ذلك من خلال ثلاث طريق :
1_باستخادم الدالة equals
2_ باستخدام المعامل = =
3_باستخدام الدالة compareTo
أولا : كيفية استخدام الدالة equals
يقارن أسلوب equals بين سِلسِلتين نصيتين بما تحتوية من احرف. فإذا لم يتم مطابقة أي حرف ، فسيتم عرض القيمة false. وإذا تمت مطابقة جميع الأحرف ، فسيتم عرضه true ...و بالتالى فهي حساسة لحالة الاحرف سواء كانت capital letters او small letters ....ويتم المقارنة على النحو التالى :
- الكود:
public class EqualsExample{
public static void main(String args[]){
String s1="javatpoint";
String s2="javatpoint";
System.out.println(s1.equals(s2));//true because content and case is same
}}
هنا قمنا بمقارنة النص الاول فى المتغير s1 مع النص فى المتغير الثاني s2 و النتيجة كانت true وذلك لكون النصين واحد بنفس حالة الاحرف small letters
مثال اخر :
- الكود:
public class EqualsExample{
public static void main(String args[]){
String s1="javatpoint";
String s2="Javatpoint";
System.out.println(s1.equals(s2));//false because case is not same
}}
هنا قمنا بمقارنة النص الاول فى المتغير s1 مع النص فى المتغير الثاني s2 و النتيجة كانت false وذلك لكون النص الاول بأخرف صغيرة small letters فى حين أن النص الثانى بدء باخرف كبيرة
لذلك توفر الجافا الطريقة equalsIgnoreCase والتى تستخدم فى مقارنة بين سِلسِلتين نصيتين بما تحتوية قيم و ليس الاحرف ...بمعنى انها تقارن القيم بغض النظر على حالة الاحرف مثال :
- الكود:
public class EqualsExample{
public static void main(String args[]){
String s1="javatpoint";
String s2="JAVATPOINT";
System.out.println(s1.equalsIgnoreCase(s2));//true
}}
ثانيا : كيفية استخدام المعامل = =
يتم استخدام المعامل = = للمقارنة بين طريقة الاسناد للمتغيرات وليس القيم ...مثال اكثر توضحا :
- الكود:
class Teststringcomparison3{
public static void main(String args[]){
String s1="Sachin";
String s2="Sachin";
String s3=new String("Sachin");
System.out.println(s1==s2);//true (because both refer to same instance)
System.out.println(s1==s3);//false(because s3 refers to instance created in nonpool)
}
}
ثالثا :استخدام الدالة compareTo
يقارن أسلوب #compareTo للمقارنة بين عدد احرف السلسة النصية و ترجع بقيمة رقمية من نوع int بقيمة المقارنة ...مثال للتوضيح
- الكود:
class Teststringcomparison4{
public static void main(String args[]){
String s1="Sachin";
String s2="Sachin";
String s3="Ratan";
System.out.println(s1.compareTo(s2));//0
System.out.println(s1.compareTo(s3));//1(because s1>s3)
System.out.println(s3.compareTo(s1));//-1(because s3 < s1 )
}
}
فى المثال اعلاه قمنا بمقارنة النص المخزن فى المتغير s1 مع المتغير s2 باستخدام الدالة #compareTo و كانت النتيجة 0 ذلك لكونها يمتلكان نفس عدد الاحرف 6 .....لكن عند مقارنة s1 مع s3 كانت النتيجة 1 و ذلك لكون النص الاول عدد احرفة 6 أكبر من عدد الاحرف 5 فى النص الثانى وكانت نتيجة المقارنة بالفرق
زهراء- ........
- تاريخ التسجيل : 18/02/2011
المساهمات : 438
النقاط : 769
التقيم : 67
الدولة :
الجنس :
رد: مقارنة السلاسل النصية فى الجافا Comparing Strings in java
الله يكرمك و يعزك على مجهودك الاستاذة زهراء
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: مقارنة السلاسل النصية فى الجافا Comparing Strings in java
الله يكرمك و يعزك على مجهودك الاستاذة زهراء
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: مقارنة السلاسل النصية فى الجافا Comparing Strings in java
السلام عليكم
استاذة زاهره
مشكوره على الشرح الجميل والرائع
لقد حملت برنامج اوبن برافو بوس وأدخلته على برنامج netbeans
واريد عمل بعض التعديلات واضافة ازرار جديده وتعديل بعض التقارير واريد المساعده في ذالك
ولكم جزيل الشكر
استاذة زاهره
مشكوره على الشرح الجميل والرائع
لقد حملت برنامج اوبن برافو بوس وأدخلته على برنامج netbeans
واريد عمل بعض التعديلات واضافة ازرار جديده وتعديل بعض التقارير واريد المساعده في ذالك
ولكم جزيل الشكر
hishamalburaay- .
- تاريخ التسجيل : 13/11/2019
المساهمات : 2
النقاط : 2
التقيم : 0
الدولة :
الجنس :
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: أساسيات اللغة Java Basics
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
أمس في 7:09 pm من طرف moslema_r
» شركة تنظيف فرشات بالرياض
الثلاثاء مارس 26, 2024 6:26 pm من طرف moslema_r
» شركة تنظيف استراحات بالرياض
الأحد مارس 24, 2024 10:49 pm من طرف moslema_r
» كشف تسربات المياه في جدة
السبت مارس 23, 2024 7:23 pm من طرف gmalnagy
» خدمات كشف تسربات المياه بخصم 25% - اتصل الان
السبت مارس 23, 2024 7:22 pm من طرف gmalnagy
» شركة تنظيف ثريات بالرياض
الخميس مارس 21, 2024 7:23 pm من طرف moslema_r
» كهربائي منازل بالرياض
الأحد مارس 17, 2024 1:52 pm من طرف رانيا حماد
» افضل شركة نقل عفش بالرياض نقل باكستاني 40% خصم | موقع الانوار
الأحد مارس 17, 2024 1:25 pm من طرف رانيا حماد
» افضل معلم جبس بالرياض تركيب جبس بورد بالرياض 20% خصم اتصل الآن
الأحد مارس 17, 2024 1:09 pm من طرف رانيا حماد
» شراء اثاث مستعمل بالكويت بخصم 30%
الأحد مارس 17, 2024 12:54 pm من طرف رانيا حماد