我正在构建一个支持阿拉伯语和英语的应用程序。

我有一个列表,我希望用户输入一个字符串,这样我可以找到列表中是否存在他的字符串。

我用这个:

String userstring = bla bla bla;

for (int i = 0; i < allFoods.size(); i++) {
    if (allFoods.get(i).toLowerCase().contains(userstring.toLowerCase()))
                    //do something here
            }


当用户输入的单词为英语时,该代码可以完美地工作。但是当用户输入阿拉伯字符串时我没有任何结果

请问我做错了什么?我该怎么办?

感谢你。

编辑:我不想排序和比较字符串,但我想检查相等性(包含)

最佳答案

如果要进行字符串比较,可以使用Collator API:

List<String> list = ...;

// create collator for arabic
Collator collator = Collator.getInstance(new Locale("ar"));
collator.setDecomposition(Collator.FULL_DECOMPOSITION);
collator.setStrength(Collator.SECONDARY); // ignores lower/upper case

// sort list
Collections.sort(list, collator);
// or use it as any other comparator


我不知道该API是否可以某种方式用于测试另一个字符串是否包含字符串。

09-11 19:26