我对波斯语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并且找到了字符串! 请帮助我。我正在寻找很长时间,但却找到了答案
答案 0 :(得分:1)
这是因为你的角色。您在“کاربر”中使用的第一个字符“ک”与您在第二个“کار”中使用的“ک”不同。要解决此问题,您必须统一这些字符:
为此,您必须在两个字符串上使用以下代码:
private String unifiedString(String input) {
return input.replace("ک", "ک");
}
“ی”字符存在同样的问题,您必须像这样处理它。
答案 1 :(得分:0)
我用A. Badakhshan回答了我的问题。 这个问题是阿拉伯语和波斯语的特点。 在阿拉伯语中,两个字符结构与波斯语字符不同。如果搜索为波斯语,则应将其替换为波斯语结构。这是完整的代码:
public String unifiedString(String input) {
return input.replaceAll("ک", "ك").replaceAll("ی","ي");
}