Membandingkan Dua Buah String di Java

Bagus Aji Santoso 6 Agustus 2017

Membandingkan Dua Buah String di Java

Perbandingan String merupakan tugas yang cukup sering dilakukan dan Java memiliki beberapa cara untuk membandingkan dua buah String. Di Java, String merupakan kelas yang spesial, String bersifat immutable dan dipakai diberbagai jenis aplikasi mulai dari hello world hingga aplikasi enterprise. Tutorial kali ini kita akan melihat beberapa cara untuk membandingkan dua buah String di Java dan belajar bagaimana menggunakan equals() atau compareTo() untuk melakukannya.

Membandingkan dua String menggunakan metode equals di Java

Metode equals() membandingkan dua String berdasarkan kontennya. Sehingga, apabila dua buah String memiliki huruf-huruf yang sama, diurutan yang sama dan besar-kecil yang sama maka dua String ini akan dianggap sama. Oleh karena itu "Codepolitan" dan "Codepolitan" akan mengembalikan nilai true sedangkan "Codepolitan" dan "CODEPOLITAN" akan mengembalikan nilai false.

Membandingkan String dengan equalsIgnoreCase

Dibandingkan dengan equals, metode equalsIgnoreCasemembandingkan dua String dengan mengabaikan besar-kecilnya. Oleh karena itu, String "Codepolitan" dan "CODEPOLITAN" adalah dua buah String yang sama menurut equalsIgnoreCase dan menghasilkan nilai true.

Membandingkan String menggunakan compareTo

Berbeda dengan dua metode sebelumnya, compareTo membandingkan dua buah String berdasarkan urutan leksikografisnya (posisi kamus). Penulisan compareTo adalah dengan menuliskan "google".compareTo("codepolitan"). Metode ini akan mengembalikan sebuah nilai int yang dapat diartikan sebagai berikut:

  • Jika nilai yang dikembalikan kurang dari nol, maka String yang pertama memiliki posisi kamus lebih dulu.
  • Jika nilai yang dikembalikan sama dengan nol maka kedua String memiliki posisi kamus yang sama.
  • Jika nilai yang dikembalikan lebih dari nol maka String yang kedua (yang dikirimkan ke parameter compareTo) memiliki posisi kamus lebih dulu.

Membandingkan String menggunakan compareToIgnoreCase

Metode ini mengabaikan besar-kecil String seperti halnya equalsIgnoreCase() dan mengembalikan nilai yang sama dengan metode compareTo().

Jangan menggunakan "==" untuk membandingkan String

Banyak programmer Java membuat kesalahan dengan menggunakan "==" untuk melakukan perbandingan String. Simbol "==" membandingkan referensi dua variabel apakah menunjuk ke objek yang sama di heap Java. Selalu gunakan salah satu metode di atas untuk membandingkan konten dua buah String di Java.

Source Code

Berikut ini contoh program Java yang membandingkan dua buah String.

public class StringComparisonExample { public static void main(String args[]) { String tv = "Bravia"; String television = "Bravia"; // Contoh perbandingan String dengan equals if (tv.equals(television)) { System.out.println("Both tv and television contains same letters and equal by equals method of String"); } // Contoh perbandingan String dengan compareTo if (tv.compareTo(television) == 0) { System.out.println("Both tv and television are equal using compareTo method of String"); } television = "BRAVIA"; // Contoh perbandingan String dengan equalsIgnoreCase if (tv.equalsIgnoreCase(television)) { System.out.println("tv and television are equal by equalsIgnoreCase method of String"); } // Contoh perbandingan String dengan compareToIgnoreCase if (tv.compareToIgnoreCase(television) == 0) { System.out.println("tv and television are same by compareToIgnoreCase of String"); } String sony = "Sony"; String samsung = "Samsung"; // Contoh perbandingan String dengan compareTo if (sony.compareTo(samsung) > 0) { System.out.println("Sony comes after Samsung in lexicographical order"); } else if (sony.compareTo(samsung) < 0) { System.out.println("Sony comes before Samsung in lexicographical order"); } } }

Berikut ini keluaran program Java di atas:

Both tv and television contains same letters and equal by equals method of String Both tv and television are equal using compareTo method of String tv and television are equal by equalsIgnoreCase method of String tv and television are same by compareToIgnoreCase of String Sony comes after Samsung in lexicographical order

Sumber:

How to compare two String in Java - String Comparison Example