如何将contains转换为equals.ignorecase?

Pau*_*ul 1 java string contains

我正在将一个文本文件读入我的程序,并让用户搜索一个字符串.我怎样才能使它不区分大小写呢?这是我的代码片段:

while (str1.hasNextLine())
{
    String line = str1.nextLine();
    line = line.replace(";", " ");
    if(line.contains(Val))
    {
        System.out.println(line);
    } 

}
Run Code Online (Sandbox Code Playgroud)

Val是字符串变量.它是用户输入的字符串,如果在文本文件中找到,则该字符串将在该行上打印出来.但我需要它不区分大小写.出于某种原因,当我使用equals.IgnoreCase它时,它不起作用.

Mak*_*oto 6

在这种情况下,将所有内容都统一为案例并进行比较.

if (line.toLowerCase().contains(Val.toLowerCase())) {
    // logic
}
Run Code Online (Sandbox Code Playgroud)

什么contains可以做有限制.它只CharSequences以区分大小写的方式检查并执行此操作.通过引入一个常见的案例,这消除了区分大小写的问题.

  • 作为OP的注释:请不要在循环中调用`Val.toLowerCase()`.创建一个自己的变量,该变量将"转换"的字符串保存在该循环之外并使用它. (3认同)