Saya membuat program Java untuk membandingkan dua string:
String s1 = "Hello";
String s2 = "hello";
if (s1.equals(s2)) {
System.out.println("hai");
} else {
System.out.println("welcome");
}
Ini menampilkan "selamat datang". Saya mengerti ini peka huruf besar / kecil. Tapi masalah saya adalah saya ingin membandingkan dua string tanpa sensitivitas huruf. Yaitu saya mengharapkan hasilnya hai
.
s1.equalsIgnoreCase(s2)
Anda mungkin gagal melakukannya di mana pun itu perlu dilakukan. Saya menyarankan agar Anda menemukan dari mana string itu berasal - file atau database atau mungkin input pengguna - dan ubah menjadi huruf besar (atau huruf kecil) dan terus menggunakan .equals untuk perbandingan.
equalsIgnoreCase
pendekatan yang diterima . Baca masalah Turki I dan masalah Unicode serupa untuk alasannya.
equalsIgnoreCase
mengembalikan nilai yang salah untuk bahasa Turki, karena mengembalikan nilai true untuk membandingkan "i" dan "I", meskipun seharusnya mengembalikan false. Jadi saya curiga jika Anda ingin mempertimbangkan lokal, Collator
sebenarnya cara yang harus dilakukan.
toLowerCase
/ toUpperCase
pada seluruh string dan melakukannya per karakter memberikan dua hasil yang berbeda juga.