قارن بين سلسلتين في جافا - يساوي () ويساوي-IgnoreCase ()

أول ما يتبادر إلى الذهن هو إجراء مقارنة مع "==" لكن هذا خطأ تماما. عندما بدأت البرمجة باستخدام Java ، قارنت سلسلتين ب "==" التي تختبر المساواة بين الكائنات ولكن ليس بين سلسلتين حرفين. على عكس C ++ ،   أنشأ مصممو Java طرقا في فئة String لتبسيط اللغة نظرا لأنها موجهة للكائنات.

مقارنة السلسلة مع طريقة equals< / h2 >< div >تختبر طريقة equals () الخاصة ب class String< / b> للقيم في java< / u> أو المحتويات المتغيرة وترجع <نمط span =" اللون: #38761d;" >true إذا كانت كلتا السلسلتين تحتويان على نفس الأحرف. إليك مثال: < / div>

< / div>
 String s1 = "str" ؛ 
سلسلة s2 = "str" ؛
if (s1.equals (s2))
System.out.println ("كلتا السلسلتين متساوي") ؛
< / pre>equals () حساس لحالة الأحرف (أحرف صغيرة أو كبيرة):

< pre class = "prettyprint lang-java" > String s1 = "str" ؛
سلسلة s2 = "STR" ؛
if (s1.equals (s2))
System.out.println ("كلتا السلسلتين متساوي") ؛
في هذه الحالة، فإنه يرجع false.

تجاهل الأحرف الكبيرة مع equalsIgnoreCase()

تتجنب طريقة equalsIgnoreCase() تمرير سلسلة من الأحرف الصغيرة إلى الأحرف الكبيرة ومقابل ذلك وتقارنها بيساوي () ، تقدم Java طريقة equalsIgnoreCase() التي تحول الأحرف إلى أحرف صغيرة وتقارن السلسلتين.
< br / >< / div>
 String s1 = "str" ؛ 
سلسلة s2 = "STR" ؛
if(s1.equalsIgnoreCase(s2))
System.out.println("الحساسية للحالة التي تم تجاهلها. السلسلتان متساويتان")؛ < / pre>

مقارنة الحجم< / h2 >< / div>
تحتوي فئة السلسلة على طريقة length () التي ترجع طول السلسلة:

< / div>
if ("string1" .length () == "string2" .length ())
System.out.println ("string1 و string2 متساويان في الحجم") ؛
else if ("string1".length ()>" string2 ".length ()))
System.out.println ("string1 أطول") ؛
else
System.out.println ("string2 أطول") ؛ < / pre>< / div>

ما الفرق بين يساوي و "=="< / h2>< / div>
اختبارات طريقة equals() للمساواة في القيم.

new String("test").equals(new String("test"));//--> true
يختبر عامل التشغيل "==" المساواة بين الكائنات ، وإليك سلسلة من الأخطاء التي يجب تجنبها:

< pre class = "prettyprint lang-java" > String s1 = "trial" ؛
السلسلة s2 = "محاكمة" ؛

/ / هم نفس الكائن
s1 == s2 ؛ --> false

//أنها ليست نفس الكائن
s1 == "اختبار"; --> false

// يشيرون إلى نفس الكائن
"test" == "test" ؛ --> صحيح < br / >< br / > / / يعتبر التسلسل ككائن واحد < br / > "اختبار" == "الخاص بك" + "t" ؛ --> True

//طريقة substring() ينشئ كائنا جديدا
"test" == "1test".substring(1); --> false

//طريقة replace() يولد كائنا جديدا
"test" == "Test".replace("T"، "t"); --> false

ترجع السلسلة true لأنه يتم استدعاؤها أثناء التحويل البرمجي ، على عكس substring() و replace() التي يتم استدعاؤها في وقت التشغيل وسيتم إنشاء كائن جديد لا يساوي الجانب الآخر من المعادلة.

Advertisement

AdBlock Detected

Please disable your ad blocker and refresh the window to use this website.