如何使字符串不区分大小写

3

我有一个EditText和一个ListView,它包含一些值。在EditText中输入文本时,ListView的内容将根据EditText中输入的值进行更改。

现在的问题是,字符串区分大小写。也就是说,如果原始文本是Apparel,那么即使我们输入apparelappa,原始文本也不会被显示。

我想让字符串搜索不区分大小写。

我的代码如下:

private List<SearchList> searchTerms(List<SearchList> search_list, String s) {
    List<SearchList> matches = new ArrayList<SearchList>();
    for (SearchList search_lists : search_list) {
        if (search_lists.search_term.contains(s)) {
            matches.add(search_lists);
        }
    }
    return matches;
}

有没有办法实现这个。我已经尝试了很多次。


为什么你不用 toLowerCase() 处理字符串? - Pankaj
@Clairvoyant:我已经尝试过了。但是没有起作用。 - Jithin Varghese
你能展示一下你尝试过的代码吗? - Pankaj
3个回答

6

string contains();函数区分大小写。从您的问题中我注意到您的列表中也包含大写字母。因此,对两侧应用toLowerCase()即可解决。

if (search_lists.search_term.toLowerCase().contains(s.toLowerCase())) 
{
    matches.add(search_lists);
}

希望这能帮到您。

2

尝试将字符串转换为小写:

private List<SearchList> searchTerms(List<SearchList> search_list, String s) {
    List<SearchList> matches = new ArrayList<SearchList>();
    for (SearchList search_lists : search_list) {
        if (search_lists.search_term.contains(s.toLowerCase())) {
            matches.add(search_lists);
        }
    }
    return matches;
}

0

只需像这样做并进行比较,希望它能正常工作 :)

   EditText editText= (EditText) findViewById(R.id.editText);
   String editTextString=editText.getText().toString();
   editTextString.equalsIgnoreCase(yourCompare);

这样做无法实现所需的功能,因为Jithin希望editTextString是特定搜索词的子字符串。 - Rahin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接