1
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();
    }

我试图让用户搜索他们通过字符输入的名称。我基本上已经解决了这些错误,但我也希望他们能够做到这一点而不必担心大小写。我搜索了这个问题,并按照提供的说明进行操作,它仍然区分大小写。

有人介意帮我吗?

更多信息:名称就是我所说的数组列表。感谢大家的投入,当我有机会时,我会尝试每个解决方案。

4

4 回答 4

1

String#contains与小写一起使用。

for(String nm:name){
    if(nm.toLowerCase().contains(searchTerm.toLowerCase()))
        printLn(name.get(i));
    else
        printLn("nope");
}
于 2012-10-04T17:39:17.097 回答
1

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

for(String str : name) {
    if(str.equalsIgnoreCase(searchTerm)) {
        ....
    } else {
        ....
    }
}
于 2012-10-04T17:35:19.520 回答
1

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

(除非你想name成为一个子串searchTerm?)

于 2012-10-04T17:35:41.900 回答
1

使用equalsIgnoreCase()代替equals()

于 2012-10-04T17:37:35.177 回答