我想比较(不区分大小写)两个字符串,忽略标点符号,如点、逗号或其他符号(如西班牙语或法语字母ó ü ê
等)
一些例子:
Hello == Helló
Hello, Sam == Hello sam
geo-code == geocode == geo code
(不必涵盖所有选项)
什么是最好的解决方案(外部库、方法等)
删除所有特殊字符。
就像从geo-code
删除-
它变成geocode
. 同样,从geo code
Hello, sam
删除空格和逗号Hellosam
后,您可以比较这些字符串。这是你可以做到的。
现在关于像法语这样的特殊字符:这将对您有所帮助。
这是在另一个线程中找到的代码。我还没有测试过。
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("");
}