Java字符串搜索忽略重音符号

戴夫·约翰斯顿:

我正在尝试为我的应用程序编写一个过滤器函数,该函数将采用输入字符串并以某种方式过滤掉与给定输入不匹配的所有对象。最简单的方法是使用String的contains方法,即仅检查对象(对象中的String变量)是否包含在过滤器中指定的字符串,但这不会考虑重音。

所讨论的对象基本上是Person,而我要匹配的字符串是名称。因此,例如,如果有人搜索Joao,我希望Joáo会包含在结果集中。我已经在我的应用程序中使用了Collat​​or类来按名称进行排序,并且它可以进行比较,因为它可以进行比较,因此效果很好,即使用UK Localeá位于b之前但位于a之后。但是很明显,如果比较a和á,则它们不会返回0,因为它们不相等。

那么,有谁知道我将如何做到这一点?

BalusC:

利用java.text.Normalizer正则表达式摆脱变音符号

public static String removeDiacriticalMarks(String string) {
    return Normalizer.normalize(string, Form.NFD)
        .replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
}

您可以如下使用:

String value = "Joáo";
String comparisonMaterial = removeDiacriticalMarks(value); // Joao

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

替换字符串中的单词,但忽略带重音符号的字符

C ++字符串/字符和重音符号

删除字符串数组中的重音符号

删除字符串中的重音符号(“ñ”除外)

Swift:获取字符串的子字符串,忽略大小写和重音符号

Java如何在字符串中添加带重音符号的“ e”?

如何使用哈希图从Java中的Unicode字符串中删除重音符号?

python中字符串的变音符号/重音符号的替换

在JavaScript中删除字符串中的重音符号/变音符号

如何从.NET中的字符串中删除变音符号(重音符号)?

如何使MediaWiki搜索忽略重音符号?

如何忽略Azure搜索中的重音符号?

从Java中的字符串中删除所有非单词字符,留下带重音符号的字符?

在字符串列上连接两个DataFrame,但忽略重音符号/变音符号

网页中的chrome搜索:带重音符号的字符

从Unicode字符串中删除重音符号的简单方法?

Python:带重音符号的字节为字符串

如何在Haskell中从字符串中删除重音符号?

在插入SQL数据库之前删除字符串中的重音符号

不输出带有重音符号的宽字符串

Firestore:如何正确地按带重音符号的字符串排序?

删除tf.dataset管道中输入字符串的重音符号

包含重音符号的字符串不会出现

如何修复带重音符号的字符串[python]

在Oracle中从字符串中删除重音符号

重音符号的字符串无法在Excel中的csv文件中正确显示

如何从ios中的字符串中找到重音符号?

排序字符串数组时先将大写字母包括重音符号

如何在ruby中使用带重音符号的字符串