İki dizeyi karşılaştırmak için bir Java programı oluşturdum:
String s1 = "Hello";
String s2 = "hello";
if (s1.equals(s2)) {
System.out.println("hai");
} else {
System.out.println("welcome");
}
"Hoş Geldiniz" ibaresini görüntüler. Büyük / küçük harfe duyarlı olduğunu anlıyorum. Ama benim sorunum, iki dizgeyi büyük / küçük harf duyarlılığı olmadan karşılaştırmak istemem. Yani çıktının olmasını bekliyorum hai.
s1.equalsIgnoreCase(s2)yapılması gereken her yerde yapamayabilirsiniz. Dizenin nereden geldiğini bulmanızı (bir dosya veya veritabanı veya kullanıcı girişi) bulmanızı ve büyük harfe (veya küçük harfe) dönüştürmenizi ve karşılaştırma için .equals kullanmaya devam etmenizi öneririm.
equalsIgnoreCaseyaklaşımı kullanın . Gerekçe için Türkçe I sorunu ve benzer Unicode sorunları hakkında bilgi edinin.
equalsIgnoreCaseyine de Türkçe için yanlış değeri döndürüyor, çünkü "i" ve "I" yi karşılaştırmak için true döndürüyor, yanlış döndürmesi gerekse bile. Bu nedenle, yerel ayarları hesaba katmak istiyorsanız, a'nın Collatoraslında gidilecek yol olduğundan şüpheleniyorum .
toLowerCase/ toUpperCaseyapmak ve karakter başına yapmak da iki farklı sonuç veriyor.