Bagaimana membandingkan dua String di Java
Metode untuk Membandingkan String di Java
Java menyediakan metode berbeda yang dapat Anda manfaatkan untuk membandingkan dua string Java. Perbandingan string di Java adalah fitur yang mencocokkan urutan karakter dengan string.
Untuk mempelajari cara membandingkan string di Java, Anda dapat menggunakan metode yang disediakan oleh kelas-kelas berikut.
- Kelas string dari Javapaket .lang.
- Kelas objek dari Javapaket .util.
- Kelas StringUtils dari paket org.apache.commons.lang3.
Sebagian besar ini Java metode bandingkan string memiliki solusi untuk mengabaikan kasus ini. Dalam hal ini Java tutorial ini, Anda akan mempelajari berbagai metode yang dapat digunakan untuk membandingkan dua string.
Metode 1: Metode string sama dengan()
The Java String sama dengan() metode membandingkan dua objek string untuk nilai string yang sama.
sintaks:
public boolean equals(Object anObject)
sama dengan() parameter metode:
anObject – String argumen untuk membandingkan string.
sama dengan() tipe pengembalian metode
- Mengembalikan nilai benar jika string literal yang diberikan sama dengan string pertama.
- Mengembalikan nilai salah jika string pertama tidak sama dengan string argumen.
Contoh:
public class CompareTwoStrings {
public static void main(String[] args) {
String stringOne = "Guru99";
String stringTwo = "Guru99";
System.out.println("is Guru99 equal to Guru99: "+stringOne.equals(stringTwo));
String stringThree = "GURU99";
System.out.println("is Guru99 equal to GURU99: "+stringOne.equals(stringThree));
}
}
Output yang Diharapkan:
is Guru99 equal to Guru99: true is Guru99 equal to GURU99: false
Penjelasan:
- Anda mendapatkan false pada keluaran terakhir karena objek yang ditentukan memiliki huruf besar/kecil yang berbeda.
Note: Gunakan metode string yang sama untuk perbandingan string peka huruf besar-kecil. Gunakan metode “equalsIgnoreCase” untuk membandingkan objek string dengan nilai string yang berbeda.
Metode 2: Metode objek sama dengan()
The Java Objek sama dengan() Metode membandingkan dua objek string untuk menemukan apakah keduanya memiliki nilai yang sama.
sintaks:
public static boolean equals(Object a, Object b)
sama dengan() parameter metode
a – Argumen string untuk objek string pertama.
b – Argumen string untuk objek string kedua.
sama dengan() tipe pengembalian metode
- Mengembalikan nilai benar jika literal stringnya sama. Melewati nilai null dalam dua argumen juga akan mengembalikan nilai true.
- Mengembalikan nilai salah jika literal string tidak sama.
Contoh:
import java.util.Objects;
public class CompareTwoStrings {
public static void main(String[] args) {
String stringOne = "Guru99";
String stringTwo = "Guru99";
System.out.println("is Guru99 equal to Guru99: " + Objects.equals(stringOne, stringTwo));
String stringThree = null;
String stringFour = null;
System.out.println("is Guru99 equal to Guru99: " + Objects.equals(stringThree, stringFour));
}
}
Keluaran:
is Guru99 equal to Guru99: true is Guru99 equal to Guru99: true
Penjelasan:
Dari contoh ini, Anda dapat melihat bahwa outputnya adalah nilai boolean true karena string yang dibandingkan adalah sama.
Metode 3: Metode string bandingkanTo()
The Java String bandingkanKe() Metode membandingkan dua string dalam urutan abjad. Metode ini biasanya disebut urutan leksikografis.
sintaks:
public int compareTo(String str)
parameter metode bandingkanTo()
str – String yang akan dibandingkan dengan string saat ini.
metode bandingkanTo() kembali
- 0 – Mengembalikan nol jika objek yang ditentukan sama dengan string saat ini.
- < 0 – Mengembalikan angka kurang dari nol jika string ini lebih kecil dari objek yang ditentukan.
- > 0 – Mengembalikan angka yang lebih besar dari nol jika string ini melebihi string yang disediakan.
Contoh:
public class CompareTwoStrings {
public static void main(String[] args) {
String stringOne = "Guru99";
String stringTwo = "Guru99";
System.out.println("is Guru99 equal to Guru99: " + stringOne.compareTo(stringTwo));
String stringThree = "GURU99";
// u = 117, U = 85, result = 117-85 = 32
System.out.println("is Guru99 equal to GURU99: " + stringOne.compareTo(stringThree));
}
}
Output yang Diharapkan:
is Guru99 equal to Guru99: 0 is Guru99 equal to GURU99: 32
Penjelasan:
Hasil pertama mengembalikan nilai nol karena string pertama dan kedua sama.
Hasil kedua mengembalikan nilai tiga puluh dua karena karakternya berbeda.
Catatan: Untuk mengabaikan kasus tersebut, Anda dapat menggunakan metode “compareToIgnoreCase”.
Metode 4: Metode StringUtils sama dengan()
The Java StringUtils sama dengan() metode membandingkan kesetaraan dua rangkaian karakter.
Pastikan Anda telah menambahkan perpustakaan “org.apache.commons.lang3” di program Anda. Ini memungkinkan Anda membandingkan string menggunakan metode StringUtil.
Untuk proyek Maven, gunakan ini membimbing untuk menambahkan perpustakaan ke proyek.
Namun, Jika Anda ingin menambahkan perpustakaan tanpa alat build apa pun, gunakan ini membimbing.
sintaks:
public static boolean equals(CharSequnce cs1, CharSequence cs2)
Parameter metode StringUtils sama dengan()
- cs1 – Urutan karakter untuk argumen pertama.
- cs2 – Urutan karakter untuk argumen kedua.
Metode StringUtils sama dengan() kembali
- Mengembalikan nilai benar jika perbandingan stringnya sama. Ini berlaku jika Anda memberikan nilai null dalam dua argumen.
- Mengembalikan nilai salah jika perbandingan string tidak sama.
Contoh:
import org.apache.commons.lang3.StringUtils;
public class CompareTwoStrings {
public static void main(String[] args) {
String stringOne = "Guru99";
String stringTwo = "Guru99";
System.out.println("is Guru99 equal to Guru99: " + StringUtils.equals(stringOne, stringTwo));
String stringThree = "GURU99";
System.out.println("is Guru99 equal to GURU99: " + StringUtils.equals(stringOne, stringThree));
}
}
Keluaran:
is Guru99 equal to Guru99: true is Guru99 equal to GURU99: false
Penjelasan:
Karena isi string pertama dan kedua sama, hasilnya mengembalikan nilai true.
Anda dapat menggunakan metode “equalsIgnoreCase” untuk mengabaikan kasus ini.
Metode 5: Metode StringUtils sama denganAny()
The Java StringUtils sama dengan Any() metode memeriksa apakah ada string dalam argumen.
sintaks:
public static boolean equalsAny(CharSequence string, Charsequence… searchStrings)
Parameter metode StringUtils sama denganAny()
- string – Nilai string untuk argumen pertama. Argumennya juga bisa bernilai nol.
- searchStrings – Satu set argumen string untuk metode untuk menemukan apakah string argumen pertama ada.
Metode StringUtils equalAny() kembali
- Mengembalikan nilai benar jika string yang cocok ada dalam jumlah variabel string pencarian. Ini berlaku jika kedua argumennya nol.
- Mengembalikan nilai salah jika string yang akan dicocokkan tidak cocok dengan string apa pun dalam jumlah variabel string pencarian.
Contoh:
import org.apache.commons.lang3.StringUtils;
public class CompareTwoStrings {
public static void main(String[] args) {
String stringOne = "Guru99";
String[] stringTwo = new String[] {
"Guru99",
"JavaGuru99"
};
System.out.println("is Guru99 available: " +
StringUtils.equalsAny(stringOne, stringTwo));
String[] stringThree = new String[] {
"GURU99",
"JavaGuru99"
};
System.out.println("is GURU99 available: " +
StringUtils.equalsAny(stringOne, stringThree));
}
}
Keluaran:
is Guru99 available: true is GURU99 available: false
Penjelasan:
Karena isi string pertama dan string kedua sama, hasilnya mengembalikan nilai true. Anda dapat menggunakan metode “equalsAnyIgnoreCase” untuk mengabaikan kasus ini.
Metode 6: Menggunakan operator ==
Operator == pada string memeriksa apakah referensi objek memiliki alamat yang sama.
Contoh:
public class CompareTwoStrings {
public static void main(String[] args) {
String stringOne = "Guru99";
String stringTwo = "Guru99";
System.out.println("is Guru99 == to Guru99: " + (stringOne == stringTwo));
String stringThree = "GURU99";
System.out.println("is Guru99 == to GURU99: " + (stringOne == stringThree));
}
}
Output yang Diharapkan:
is Guru99 == to Guru99: true is Guru99 == to GURU99: false
Penjelasan:
- Hasil pertama mengembalikan nilai boolean true. String dengan konten yang sama ditambahkan ke kumpulan string yang sama sehingga string tersebut berbagi satu alamat.
- Hasil kedua mengembalikan nilai boolean false. Objek memiliki konten berbeda, yang menghasilkan kumpulan string lainnya. Ini berarti string memiliki referensi objek terpisah; jadi hasilnya salah.
Metode 7: Membuat metode khusus untuk Membandingkan dua String Java
Buat metode yang membandingkan dua string menggunakan urutan leksikografis.
sintaks:
public static int compareTwoStrings(String str1, String str2)
Parameter metode khusus
- str1 – String yang akan dibandingkan.
- str2 – String yang akan dibandingkan.
Metode khusus kembali
- 0 – Mengembalikan nol jika string pertama sama dengan string kedua.
- < 0 – Mengembalikan angka kurang dari nol jika string pertama lebih kecil dari string kedua.
- > 0 – Mengembalikan angka yang lebih besar dari nol jika string pertama lebih besar dari string kedua.
Contoh:
public class CompareTwoStrings {
public static int compareTwoStrings(String stringOne, String stringTwo) {
int lengthOfStringOne = stringOne.length();
int lengthOfStringTwo = stringTwo.length();
int minStringLength = Math.min(lengthOfStringOne, lengthOfStringTwo);
for (int i = 0; i < minStringLength; i++) {
char stringOneCharValue = stringOne.charAt(i);
char stringTwoCharValue = stringTwo.charAt(i);
if (stringOneCharValue != stringTwoCharValue) {
return stringOneCharValue - stringTwoCharValue;
}
}
if (lengthOfStringOne != lengthOfStringTwo) {
return lengthOfStringOne - lengthOfStringTwo;
} else {
return 0;
}
}
public static void main(String[] args) {
String stringOne = "Guru99";
String stringTwo = "Guru99";
System.out.println("is Guru99 equal to Guru99: " + compareTwoStrings(stringOne, stringTwo));
}
}
Output yang Diharapkan:
is Guru99 equal to Guru99: 0
Penjelasan:
Hasilnya mengembalikan nilai nol, artinya fungsi kustom berfungsi seperti yang diharapkan.
Ringkasan:
The Java Metode membandingkan dua string yang digunakan bergantung pada faktor-faktor berikut.
- Keinginan untuk memiliki kendali atas metode Anda. Dalam hal ini, buat metode kustom.
- Anda tidak dapat menggunakan kode Lama. dengan Java 6 dan lebih rendah.
- Metode yang mempunyai kinerja optimal.
- Jenis data yang Anda kerjakan. Misalnya, mencocokkan string dari sekumpulan argumen variabel.
- Fitur-fitur yang disediakan oleh perpustakaan outsourcing. Misalnya, perpustakaan StringUtils menyediakan berbagai metode untuk membandingkan string.
