相同的字母给出不同的ASCII码

时间:2016-06-08 16:32:02

标签: java android

我有android搜索查询和执行过滤。所有案件的作品都用一个字母搜索 - “ә”(哈萨克语)

    @Override
    protected FilterResults performFiltering(CharSequence constraint) {
        FilterResults results = new FilterResults();

        final List<SongModel> l = dc.songList;
        int count = l.size();
        List<SongModel> nSongList = new ArrayList<SongModel>(count);

        for (SongModel p : l) {
            if ("ә".contains(constraint.toString())) {
                nSongList.add(p);
            }
        }

        results.values = nSongList;
        results.count = nSongList.size();

        return results;
    }

如果我输入搜索字段“ә”字母,我的情况就不一样了。 “ә”.contains(constraint.toString())返回false。

2 个答案:

答案 0 :(得分:2)

我改变了我的char(字母)的ASCII码:s.replace((char)601,(char)1241); 因为performFiltering给我'''字母为601.然后我改变它来纠正一个1241。 现在它在我的情况下正常工作。

@Override
protected FilterResults performFiltering(CharSequence constraint) {
    FilterResults results = new FilterResults();

    final List<SongModel> l = dc.songList;
    int count = l.size();
    List<SongModel> nSongList = new ArrayList<SongModel>(count);
    String s = constraint.toString();
    s = s.replace((char)601,(char)1241);
    // or s.replace('\u0259','\u04D9');
    for (SongModel p : l) {
        if (p.getName().contains(s)) {
            nSongList.add(p);
        }
    }

    results.values = nSongList;
    results.count = nSongList.size();

    return results;
}

答案 1 :(得分:0)

这能满足您的需求吗?

final int uniCodeForSchwa = (int) 'ә'; // 1241
String constraint = "somecharacters";
for (int i = 0; i < constraint.length(); i++){
    char c = constraint.charAt(i);
    int intValue = Character.getNumericValue(c);
    if (uniCodeForSchwa == intValue) {
        nSongList.add(p);
        break;
    }
}