Các OP không nói rõ những gì thực tế vấn đề anh/cô ấy đang cố gắng giải quyết. Có thể có một cách tiếp cận khác sẽ giải quyết thành công vấn đề.
Tôi đã gặp một vấn đề tương tự khi tôi cố gắng tìm các kết quả phù hợp theo cách độc lập.Tôi đã sử dụng toUpperCase()
để cố gắng chuẩn hóa các chuỗi trước khi so sánh bằng cách sử dụng String.indexOf()
và đã tìm thấy sự cố với ký tự này.
Tôi không tìm thấy ngôn ngữ nào trong đó toUpperCase()
của ký tự ß dẫn đến bất cứ điều gì trừ SS (mặc dù thừa nhận rằng tôi không thử tất cả các ngôn ngữ có thể).
Giải pháp của tôi là sử dụng String.toLowerCase()
để khớp. Trong tập dữ liệu của tôi, không có sự cố khi làm điều đó sẽ thay đổi số ký tự.
Chỉnh sửa để thêm - Một mẫu mã (theo yêu cầu):
String[] matches = "SS,ss,ß".split(",");
System.out.printf("%12s %5s %5s %5s\n", " ", matches[0], matches[1], matches[2]);
String g = "Großenhain";
for (String g1 : new String[]{g, g.toUpperCase(), g.toLowerCase(), g.toUpperCase().toLowerCase()})
{
System.out.printf("%12s", g1);
for (String match : matches)
System.out.printf(" %5d", g1.indexOf(match));
System.out.println();
}
(Tôi đã ném trong toUpperCase() toLowerCase() chỉ để cho vui, không phải là một giải pháp khả thi..)
Output:
SS ss ß
Großenhain -1 -1 3
GROSSENHAIN 3 -1 -1
großenhain -1 -1 3
grossenhain -1 3 -1
có điều này xảy ra ngay cả sau khi chuyển miền địa phương. –
Có ... nó nói trong tài liệu nó làm cho _all_ địa phương –
là có cách nào tôi có thể đạt được những gì tôi đang cố gắng để làm gì? –