波斯语String的对象序列化中的String.contain

时间:2018-05-26 06:29:03

标签: java android

我对波斯语String的对象序列化中的String.contain有问题。 structuresMain.get(i).getFirstName()==“کاربر” 我的代码是:

   edtSearch.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            String s = charSequence.toString().trim();//----> s == "کار"

          if( structuresMain.get(i).getFirstName().contains(query)){

                //do something
            }

        @Override
        public void afterTextChanged(Editable editable) {

        }
    });

但是返回false并且找到了字符串! 请帮助我。我正在寻找很长时间,但却找到了答案

2 个答案:

答案 0 :(得分:1)

这是因为你的角色。您在“کاربر”中使用的第一个字符“ک”与您在第二个“کار”中使用的“ک”不同。要解决此问题,您必须统一这些字符:

为此,您必须在两个字符串上使用以下代码:

private String unifiedString(String input) {
    return input.replace("ک", "ک");
}

“ی”字符存在同样的问题,您必须像这样处理它。

答案 1 :(得分:0)

我用A. Badakhshan回答了我的问题。 这个问题是阿拉伯语和波斯语的特点。 在阿拉伯语中,两个字符结构与波斯语字符不同。如果搜索为波斯语,则应将其替换为波斯语结构。这是完整的代码:

 public String unifiedString(String input) {
   return input.replaceAll("ک", "ك").replaceAll("ی","ي");
}