我必须测试一个字符串是否包含在另一个字符串中,但不考虑大小写或重音(在这种情况下为法语重音)。

例如,如果我在字符串true中搜索"rhone",则该函数必须返回"Vallée du Rhône"

整理器对于带有重音符号的字符串比较很有用,但不提供contains函数。

有简单的方法来完成这项工作吗?正则表达式也许吗?

附加信息 :
我只需要一个true/false返回值,我不在乎匹配数或测试字符串在引用字符串中的位置。

最佳答案

您可以使用Normalizer将字符串简化为可以直接比较的精简版本。

编辑:要清除

String normalized = Normalizer.normalize(text, Normalizer.Form.NFD);
String ascii = normalized.replaceAll("[^\\p{ASCII}]", "");

10-07 13:49