مقارنة السلاسل النصية فى الجافا Comparing Strings in java

اذهب الى الأسفل

مقارنة السلاسل النصية فى الجافا Comparing Strings in java Empty مقارنة السلاسل النصية فى الجافا Comparing Strings in java

مُساهمة من طرف زهراء في الأربعاء يناير 09, 2019 11:06 am

أهلا بكم

في لغة جافا يُعرف النص بأنه مجموعة من الحروف 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

يقارن أسلوب [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] للمقارنة بين عدد احرف السلسة النصية و ترجع بقيمة رقمية من نوع 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 باستخدام الدالة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] و كانت النتيجة 0 ذلك لكونها يمتلكان نفس عدد الاحرف 6 .....لكن عند مقارنة s1 مع s3 كانت النتيجة 1 و ذلك لكون النص الاول عدد احرفة 6 أكبر من عدد الاحرف 5 فى النص الثانى وكانت نتيجة المقارنة بالفرق
زهراء
زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 395
النقاط : 664
التقيم : 53
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى