首页 > 解决方案 > 如何在搜索功能中也将上升字母用作字母

问题描述

比如说:

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。

如何做到这一点?

标签: javaandroidregexpattern-matching

解决方案


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

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

String searchFunction = "C[όo]stome"

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

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


推荐阅读