Jika Anda seperti saya, ketika saya mulai menggunakan Java, saya ingin menggunakan operator "==" untuk menguji apakah dua instance String sama, tetapi untuk lebih baik atau lebih buruk, itu bukan cara yang tepat untuk melakukannya di Jawa.
Dalam tutorial ini saya akan menunjukkan beberapa cara berbeda untuk membandingkan string Java dengan benar, dimulai dengan pendekatan yang saya gunakan sebagian besar waktu. Di akhir tutorial perbandingan String Java ini saya juga akan membahas mengapa operator "==" tidak berfungsi saat membandingkan string Java.
Opsi 1: Perbandingan Java String dengan metode equals
Sebagian besar waktu (mungkin 95% dari waktu) Saya membandingkan string dengan metode equals dari kelas Java String, seperti ini:
if (string1.equals(string2))
Metode String sama dengan ini melihat dua string Java, dan jika mereka berisi string karakter yang sama persis, mereka dianggap sama.
Melihat contoh perbandingan String cepat dengan metode equals, jika tes berikut dijalankan, dua string tidak akan dianggap sama karena karakternya tidak persis sama (kasus karakter berbeda):
String string1 = "foo";
String string2 = "FOO";
if (string1.equals(string2))
{
// this line will not print because the
// java string equals method returns false:
System.out.println("The two strings are the same.")
}
Tetapi, ketika dua string berisi string karakter yang sama persis, metode equals akan mengembalikan true, seperti dalam contoh ini:
String string1 = "foo";
String string2 = "foo";
// test for equality with the java string equals method
if (string1.equals(string2))
{
// this line WILL print
System.out.println("The two strings are the same.")
}
Opsi 2: Perbandingan string dengan metode equalsIgnoreCase
Dalam beberapa tes perbandingan string, Anda ingin mengabaikan apakah string dalam huruf besar atau kecil. Saat Anda ingin menguji string Anda untuk kesetaraan dengan cara case-insensitive ini, gunakan metode equalsIgnoreCase dari kelas String, seperti ini:
String string1 = "foo";
String string2 = "FOO";
// java string compare while ignoring case
if (string1.equalsIgnoreCase(string2))
{
// this line WILL print
System.out.println("Ignoring case, the two strings are the same.")
}
Opsi 3: Perbandingan Java String dengan metode compareTo
Ada juga yang ketiga, cara yang kurang umum untuk membandingkan string Java, dan itu dengan metode StringTemper banding kelas. Jika dua string persis sama, metode compareTo akan mengembalikan nilai 0 (nol). Berikut adalah contoh singkat dari apa yang tampak seperti pendekatan perbandingan String ini:
String string1 = "foo bar";
String string2 = "foo bar";
// java string compare example
if (string1.compareTo(string2) == 0)
{
// this line WILL print
System.out.println("The two strings are the same.")
}
Sementara saya sedang menulis tentang konsep persamaan di Jawa, penting untuk dicatat bahwa bahasa Jawa mencakup metode yang sama dengan di kelas dasar Java Object. Setiap kali Anda membuat objek Anda sendiri dan Anda ingin memberikan cara untuk melihat apakah dua instance objek Anda "sama", Anda harus menimpa (dan mengimplementasikan) metode yang sama dengan ini di kelas Anda (dengan cara yang sama bahasa Java menyediakan perilaku persamaan / perbandingan ini dalam metode String sama dengan).
Anda mungkin ingin melihat ini ==, .equals (), compareTo (), dan bandingkan ()