使用ArrayLists忽略indexOf()的大小写

时间:2012-10-04 17:32:39

标签: java arraylist

static void seaArray()
    {
        String searchTerm = key.nextLine();

        for (int i = 0; i < name.size(); i++)
        {
            if (name.get(i).toLowerCase().indexOf(searchTerm.toLowerCase(), i) != -1)
            {
                printLn(name.get(i));
            }
            else
            {
                printLn("nope");
            }
        }


        promptCommand();
    }

我正在尝试允许用户搜索他们通过字符输入的名称。我主要解决了这些问题,但我也希望他们能够做到这一点而不必担心案件。我搜索了这个问题,并提供了所提供的说明,但它仍然是区分大小写的。

有人介意帮助我吗?

更多信息:名字就是我所说的arraylist。感谢大家的投入,当我有机会的时候,请尝试解决方案。

4 个答案:

答案 0 :(得分:1)

java.lang.String提供了一种名为equalsIgnoreCase的方法:

for(String str : name) {
    if(str.equalsIgnoreCase(searchTerm)) {
        ....
    } else {
        ....
    }
}

答案 1 :(得分:1)

尝试使用Collections.binarySearch(name, searchTerm, String.CASE_INSENSITIVE_ORDER)

(除非您将name视为searchTerm的子字符串?)

答案 2 :(得分:1)

使用equalsIgnoreCase()代替equals()

答案 3 :(得分:1)

使用小写的String#contains

for(String nm:name){
    if(nm.toLowerCase().contains(searchTerm.toLowerCase()))
        printLn(name.get(i));
    else
        printLn("nope");
}