Tôi đã tạo một chương trình Java để so sánh hai chuỗi:
String s1 = "Hello";
String s2 = "hello";
if (s1.equals(s2)) {
System.out.println("hai");
} else {
System.out.println("welcome");
}
Nó hiển thị "chào mừng". Tôi hiểu nó phân biệt chữ hoa chữ thường. Nhưng vấn đề của tôi là tôi muốn so sánh hai chuỗi mà không có phân biệt chữ hoa chữ thường. Tức là tôi mong đợi đầu ra là hai
.
s1.equalsIgnoreCase(s2)
bạn có thể không thực hiện được ở mọi nơi cần hoàn thành. Tôi khuyên bạn nên tìm chuỗi đến từ đâu - có lẽ là tệp hoặc cơ sở dữ liệu hoặc thông tin người dùng nhập - và chuyển đổi thành chữ hoa (hoặc chữ thường) và tiếp tục sử dụng .equals để so sánh.
equalsIgnoreCase
phương pháp được chấp nhận . Đọc về vấn đề tiếng Thổ Nhĩ Kỳ I và các vấn đề Unicode tương tự để biết cơ sở.
equalsIgnoreCase
trả về giá trị sai cho tiếng Thổ Nhĩ Kỳ, vì nó trả về true khi so sánh "i" và "I", mặc dù nó phải trả về false. Vì vậy, tôi nghi ngờ rằng nếu bạn muốn xem xét ngôn ngữ, a Collator
thực sự là một cách để đi.
toLowerCase
/ toUpperCase
trên toàn bộ chuỗi và thực hiện trên mỗi ký tự cũng cho hai kết quả khác nhau.