2
寬鬆的字符串比較我想比較(不區分大小寫)兩個字符串忽略像點,逗號或其他符號(如西班牙語或法語字母ó ü ê
等)標點符號在Java中
一些例子標點符號:
Hello == Helló
Hello, Sam == Hello sam
geo-code == geocode == geo code
(不需要覆蓋所有的選項)
最新最好的溶液(外部庫,方法等)
寬鬆的字符串比較我想比較(不區分大小寫)兩個字符串忽略像點,逗號或其他符號(如西班牙語或法語字母ó ü ê
等)標點符號在Java中
一些例子標點符號:
Hello == Helló
Hello, Sam == Hello sam
geo-code == geocode == geo code
(不需要覆蓋所有的選項)
最新最好的溶液(外部庫,方法等)
ř排除所有特殊字符。
從geo-code
刪除-
它變成geocode
。同樣,刪除空間從geo code
Hello, sam
刪除空格和逗號後變成Hellosam
然後你可以比較這些字符串。 Here's how you can do that.
現在對特殊字符,例如法國的:This will help you.
這裏的code found in another thread。我沒有測試過它。
import java.text.Normalizer;
import java.util.regex.Pattern;
public String deAccent(String str) {
String nfdNormalizedString = Normalizer.normalize(str, Normalizer.Form.NFD);
Pattern pattern = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");
return pattern.matcher(nfdNormalizedString).replaceAll("");
}