我正在构建一个支持阿拉伯语和英语的应用程序。
我有一个列表,我希望用户输入一个字符串,这样我可以找到列表中是否存在他的字符串。
我用这个:
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是否可以某种方式用于测试另一个字符串是否包含字符串。