這是發生了什麼事。在 「лосан」Java String.contains()對西里爾字符串不起作用
用戶類型我有一大堆的產品,其定位是 「лосанджелис」
如果我這樣做:
String userInput = "лос ан"
for(Product product : products) {
if(product.getCity().trim().toLowerCase().contains(userInput.trim().toLowerCase())) {
System.out.println("MATCH");
}
}
我沒有得到匹配。
這適用於拉丁字符
問題可能不是來自'contains',而是來自'toLowerCase'(語言環境問題)。 – Tunaki
那麼我應該用什麼來代替toLowerCase?我可以做一些無視案件的內容嗎? –
問題是一樣的:無視案件。這是一個取決於語言環境的問題,因爲相同的字符可以根據語言環境進行不同的縮小。您需要向用戶詢問他們的語言並相應地使用它。請參考此答案:http://stackoverflow.com/a/11063161/1743880 – Tunaki