1. Membandingkan string
Ini semua baik dan bagus. Tetapi Anda dapat melihat bahwa string s1
dan s2
sebenarnya sama, artinya mengandung teks yang sama. Saat membandingkan string, bagaimana Anda memberi tahu program untuk tidak melihat alamat String
objek, tetapi pada kontennya?
Untuk membantu kami dalam hal ini, kelas Java String
memiliki equals
metodenya. Memanggilnya terlihat seperti ini:
string1.equals(string2)
Metode ini mengembalikan true
jika stringnya sama, dan false
jika tidak sama.
Contoh:
Kode | Catatan |
---|---|
|
|
Lebih banyak contoh:
Kode | Penjelasan |
---|---|
|
false |
|
true |
|
true |
|
true |
2. Perbandingan string yang case-insensitive
Pada contoh terakhir, Anda melihat bahwa perbandingan menghasilkan . Memang, senarnya tidak sama. Tetapi..."Hello".equals("HELLO")
false
Jelas, senarnya tidak sama. Konon, isinya memiliki huruf yang sama dan hanya berbeda pada hurufnya. Apakah ada cara untuk membandingkannya dan mengabaikan hurufnya? Artinya, sehingga menghasilkan ?"Hello".equals("HELLO")
true
Dan jawaban untuk pertanyaan ini adalah ya. Di Jawa, String
tipe tersebut memiliki metode khusus lainnya: equalsIgnoreCase
. Memanggilnya terlihat seperti ini:
string1.equalsIgnoreCase(string2)
Nama metode diterjemahkan secara kasar sebagai perbandingan tetapi abaikan case . Huruf-huruf dalam nama metode mencakup dua garis vertikal: yang pertama adalah huruf kecil L
, dan yang kedua adalah huruf besar i
. Jangan biarkan hal itu membingungkan Anda.
Contoh:
Kode | Catatan |
---|---|
|
|
3. Contoh perbandingan string
Mari kita berikan satu contoh sederhana saja: misalkan Anda perlu memasukkan dua baris dari keyboard dan menentukan apakah keduanya sama. Seperti inilah tampilan kodenya:
Scanner console = new Scanner(System.in);
String a = console.nextLine();
String b = console.nextLine();
String result = a.equals(b) ? "Same" : "Different";
System.out.println(result);
4. Nuansa perbandingan string yang menarik
Ada satu nuansa penting yang perlu Anda waspadai.
Jika kompiler Java menemukan banyak string identik dalam kode Anda (khususnya dalam kode Anda), maka itu hanya akan membuat satu objek untuk mereka untuk menghemat memori.
String text = "This is a very important message";
String message = "This is a very important message";
Dan inilah yang akan berisi memori sebagai hasilnya:
Dan jika Anda membandingkan text == message
di sini, maka Anda mendapatkan true
. Jadi jangan kaget dengan itu.
Jika karena alasan tertentu Anda sangat membutuhkan referensi agar berbeda, maka Anda dapat menulis ini:
String text = "This is a very important message";
String message = new String ("This is a very important message");
Atau ini:
String text = "This is a very important message";
String message = new String (text);
Dalam kedua kasus ini, variabel text
dan message
menunjuk ke objek berbeda yang berisi teks yang sama.
GO TO FULL VERSION