如何在搜索功能中将上升字母也用作字母

时间:2018-10-01 10:11:48

标签: java android regex pattern-matching

说例如:

String searchFunction = "Cόstome" 

期望: 当我输入Ó时,它仅高亮显示Ó,但是我也需要在上述字符串中高亮显示字母o。

我尝试过的是

handleFilterChange(deAccent(filterTerm));

public String deAccent(String str) {
        String nfdNormalizedString = Normalizer.normalize(str, Normalizer.Form.NFD);
        Pattern pattern = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");
        return pattern.matcher(nfdNormalizedString).replaceAll("");
    }

但是上面的代码将特殊字符替换为字母。  例如,当我输入ό时,它不会突出显示ό,而是突出显示字母o。

我的期望要求是,当我键入特殊字符ό时,它应该突出显示并考虑特殊字符和字母o。

如何实现?

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,则希望在搜索模式中同时检测到字符o和特殊符号ό

在这里使用特定的字符串模式搜索String searchFunction = "Cόstome",您仅在搜索特定的字符串。 如果您只有两种类型的字符串CόstomeCostome,则可以使用下面的搜索字符串来查找两者。

String searchFunction = "C[όo]stome"

这将搜索固定长度为1的字符和特殊符号。

让我知道这是否符合您的目的。