CodeGym /جاوا بلاگ /Random-SD /جاوا اسٽرنگ برابر ()
John Squirrels
سطح
San Francisco

جاوا اسٽرنگ برابر ()

گروپ ۾ شايع ٿيل
برابري لاءِ شين جو مقابلو ڪرڻ تمام اهم پروگرامنگ عملن مان هڪ آهي. جڏهن ته، انگن اکرن جي دنيا ۾ ان جي سڀني واضعيت لاء، اهو هميشه واضح ناهي ته ٻين ڊيٽا جي قسمن جو مقابلو ڪيئن ڪجي. جاوا آبجیکٹ ڪلاس، هڪ بنيادي، بيان ڪري ٿو برابر () ۽ compareTo() طريقن جي مقابلي لاءِ. اسٽرنگ ڪلاس ان جي برابر () طريقي کي ختم ڪري ٿو. جاوا اسٽرنگ برابر () طريقو ٻن تارن کي انھن جي مواد جي مطابق موازنہ ڪري ٿو. String equals() طريقو دستخط هن طرح نظر اچي ٿو:
public boolean equals(Object anotherObject)
String equals() طريقو اسٽرنگ کي مخصوص اعتراض سان موازنہ ڪري ٿو. جيڪڏهن تار برابر آهن، اهو صحيح آهي، ٻي صورت ۾ اهو غلط آهي. توھان حيران ٿي رھيا آھيو ڇو نه == موازنہ آپريٽر استعمال ڪندي تارن جو مقابلو ڪريو؟ حقيقت ۾، اهو پڻ ممڪن آهي، پر نتيجو ڪجهه مختلف ٿيندو. حقيقت اها آهي ته == آپريٽر ميموري ۾ پتي جي ڀيٽ ڪري ٿو. تنهن ڪري جيڪڏهن s1 == s2 واپس اچي ٿو صحيح ، انهن ٻن تارن کي ميموري ۾ ساڳيو پتو آهي. ساڳئي وقت، برابر برابري لاء اسٽرنگ جي مواد کي چيڪ ڪري ٿو. جاوا اسٽرنگ برابر () - 1اچو ته ٻن تارن جي ڀيٽ ڪرڻ جو هڪ مثال وٺون.
public class StringEqualsTest {
   //program to test Java equals() method
   public static void main(String[] args) {
       String myString1 = "here is my favorite string";
       String myString2 = "here is my favorite string"; //this string is the same as the previous one, at least we think so
       String myString3 = "here is My favorite string"; //this string looks a little bit like previous two, but the first letter is big M instead of small m
       String myString4 = new String("here is my favorite string");
//here we create a String in an object manner… Why? Find out soon
       String myString5 = "equals to myString1? No, not at all..."; //here we have absolutely different string. Just for fun
    //let’s compare myString1 with myString2 using “==” operator
       System.out.println(myString1 == myString2); //true
    //let’s compare myString1 with myString4 using “==” operator
       System.out.println(myString1 == myString4); //false
//and now we are going to use equals() method to compare myString1 with myString4, myString2 and myString5
     System.out.println(myString1.equals(myString4));//true
       System.out.println(myString1.equals(myString2));//true
       System.out.println(myString1.equals(myString5)); //false

   }
}
هن پروگرام جي پيداوار آهي:
سچو ڪوڙ سچو ڪوڙ
اچو ته هڪ ويجهي نظر رکون ته هتي ڇا ٿي رهيو آهي. جڏهن اسان هڪ اسٽرنگ ٺاهيندا آهيون، اهو اسٽرنگ پول ۾ رکيل آهي، ياداشت جو هڪ خاص علائقو. Strings ڪنهن به وڏي پروگرام ۾ سڀني شين جو هڪ وڏو حصو وٺي ٿو. تنهن ڪري ميموري کي بچائڻ لاءِ اسٽرنگ پول ٺاهيو ويو، جتي توهان کي گهربل متن سان هڪ اسٽرنگ رکيل آهي. بعد ۾ نوان ٺاهيل لنڪس ساڳئي ميموري واري علائقي ڏانهن اشارو ڪن ٿا، هر وقت اضافي ياداشت مختص ڪرڻ جي ڪا ضرورت ناهي. جيڪڏهن توهان نئين آپريٽر جي بغير هڪ اسٽرنگ ٺاهي، اهو آهي، جڏهن توهان لکندا آهيو
String  myStringName = "...........................................",
يا اهڙي ڪا شيءِ، پروگرام چيڪ ڪري ٿو ته ڇا String پول ۾ اهڙي متن سان String موجود آهي. جيڪڏهن اهو آهي، ڪو نئون اسٽرنگ پيدا نه ٿيندو. ۽ نئين لنڪ ساڳئي ايڊريس ڏانهن اشارو ڪندي String Pool ۾ جتي اهو String اڳ ۾ ئي ذخيرو ٿيل آهي. سو جڏهن پروگرام ۾ لکيوسين
String myString1 = "here is my favorite string";
String myString2 = "here is my favorite string";
حوالو myString1 ميموري ۾ بلڪل ساڳي جڳهه ڏانهن اشارو ڪري ٿو myString2 . پهرين ڪمانڊ اسٽرنگ پول ۾ هڪ نئين اسٽرنگ ٺاهي جيڪا اسان کي گهربل متن سان، ۽ جڏهن اها ٻئي تي آئي، اهو صرف ساڳئي ياداشت واري علائقي ڏانهن اشارو ڪيو ويو آهي myString1 . پر string myString4 نئين آپريٽر استعمال ڪندي هڪ اعتراض جي طور تي ٺاهيو ويو . هي آپريٽر ڪنهن شئي لاءِ ميموري ۾ هڪ نئون علائقو مختص ڪري ٿو جڏهن اهو ٺهيل آهي. نئين سان ٺهيل هڪ تار
String myString1 = new String ("here is my favorite string");
String myString2 = new String ("here is my favorite string");
String Pool ۾ نه ٿو پوي، پر هڪ الڳ شئي بڻجي وڃي ٿي، جيتوڻيڪ ان جو متن مڪمل طور تي String Pool جي ساڳي اسٽرنگ سان ملي ٿو. ان کان علاوه، جيڪڏهن اسان String equals() طريقي سان اسٽرنگ جو مقابلو ڪنداسين، اهو پتو نه، پر اسٽرنگ جي مواد، اسٽرنگ ۾ ڪردارن جي تسلسل کي چيڪ ڪندو. ۽ جيڪڏهن اسٽرنگ ۾ متن ساڳيو آهي، اهو مسئلو ناهي ته اهي ڪيئن ٺاهيا ويا آهن ۽ اهي ڪٿي ذخيرو ٿيل آهن، اسٽرنگ پول ۾، يا هڪ الڳ ياداشت واري علائقي ۾. انهي ڪري myString1 ، myString2 ۽ myString4 هن مقابلي ۾ برابر هئا. رستي ۾، ڇا توهان محسوس ڪيو آهي ته String equals() طريقو توهان کي اجازت ڏئي ٿو صحيح طريقي سان اسٽرنگ جو مقابلو ڪرڻ جي صورت ۾ حساس انداز ۾؟ اهو آهي، جيڪڏهن اسان اسٽرنگ "منهنجي اسٽرنگ" کي ​​"منهنجي اسٽرنگ" ۽ "MY STRING" سان موازنہ ڪريون ته اسان غلط ٿينداسين.
public class StringEqualsTest {

   public static void main(String[] args) {

       String myString1 = new String ("here is my favorite string");
       String myString2 = new String ("here is My favorite string");
       String myString3 = new String("HERE IS MY FAVORITE STRING");

       System.out.println(myString1.equals(myString2)); //false because first string myString1 has small m and myString2 has big M instead
       System.out.println(myString1.equals(myString3));//false because myString1 is in lowercase while myString3 is in uppercase

   }
}
پيداوار هتي آهي:
ڪوڙو ڪوڙ
اسٽرنگ کي غير حساس طريقي سان ڀيٽڻ لاءِ، جاوا وٽ ھڪڙو طريقو آھي جيڪو بلڪل برابر آھي :
boolean equalsIgnoreCase​(String anotherString)
اچو ته ان کي اسان جي مثال ۾ استعمال ڪريو.
public class StringEqualsTest {

   public static void main(String[] args) {

       String myString1 = new String ("here is my favorite string");
       String myString2 = new String ("here is My favorite string");
       String myString3 = new String("HERE IS MY FAVORITE STRING");
     /* here we are going to use the brother of equals() method, equalsIgnoreCase(). It can help to check user input when case isn’t
important */
       System.out.println(myString1.equalsIgnoreCase(myString2));

       System.out.println(myString1.equalsIgnoreCase(myString3));

   }
}
هاڻي پيداوار آهي:
سچ سچ
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION