包含与归类器
我必须测试一个字符串是否包含在另一个字符串中,但不考虑大小写或重音符号(在这种情况下是法语重音)。
例如,如果我在字符串中搜索,则该函数必须返回。true
"rhone"
"Vallée du Rhône"
排序规则器对于字符串与重音符号的比较很有用,但不提供函数。contains
有没有一种简单的方法来完成工作?也许是正则表达式?
附加信息:
我只需要一个/返回值,我不关心引用字符串中测试字符串的匹配次数或位置。true
false
我必须测试一个字符串是否包含在另一个字符串中,但不考虑大小写或重音符号(在这种情况下是法语重音)。
例如,如果我在字符串中搜索,则该函数必须返回。true
"rhone"
"Vallée du Rhône"
排序规则器对于字符串与重音符号的比较很有用,但不提供函数。contains
有没有一种简单的方法来完成工作?也许是正则表达式?
附加信息:
我只需要一个/返回值,我不关心引用字符串中测试字符串的匹配次数或位置。true
false
可以使用规范化程序将字符串减少到可以直接比较的精简版本。
编辑:要清楚
String normalized = Normalizer.normalize(text, Normalizer.Form.NFD);
String ascii = normalized.replaceAll("[^\\p{ASCII}]", "");
看看 Normalizer。
您应该将其称为第二个参数。Normalizer.Form.NFD
所以,这将是:
Normalizer.normalize(yourinput, Normalizer.Form.NFD)
.replaceAll("\\p{InCombiningDiacriticalMarks}+", "")
.toLowerCase()
.contains(yoursearchstring)
如果匹配,它将返回 true(当然,否则返回 false)