Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将contains转换为equals.ignorecase?_Java_String_Contains - Fatal编程技术网

Java 如何将contains转换为equals.ignorecase?

Java 如何将contains转换为equals.ignorecase?,java,string,contains,Java,String,Contains,我正在将一个文本文件读入我的程序,并让用户搜索字符串。如何使其不区分大小写?以下是我的代码片段: while (str1.hasNextLine()) { String line = str1.nextLine(); line = line.replace(";", " "); if(line.contains(Val)) { System.out.println(line); } } Val是字符串变量。它是用户输入的字符串,如果在

我正在将一个文本文件读入我的程序,并让用户搜索字符串。如何使其不区分大小写?以下是我的代码片段:

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

}

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

在这个场景中,将所有内容都设置为统一的大小写,然后进行比较

if (line.toLowerCase().contains(Val.toLowerCase())) {
    // logic
}

我们的能力有限。它只检查字符序列,并以区分大小写的方式进行检查。通过引入一个通用案例,这就消除了区分大小写的问题。

在这个场景中,将所有内容都变成一个统一的案例,并进行比较

if (line.toLowerCase().contains(Val.toLowerCase())) {
    // logic
}

我们的能力有限。它只检查字符序列,并以区分大小写的方式进行检查。通过引入普通大小写,这消除了区分大小写的问题。

没有其他选项可以避免创建中间字符串:请参阅和。没有其他可以避免创建中间字符串的选项:请参阅和。请注意:请不要在循环中调用Val.toLowerCase。创建一个自己的变量,将转换后的字符串保存在该循环之外,然后使用它。@Tom,我同意。另一方面,这可能是过早的优化,导致不必要地创建一个新变量,而且根本不会更快。@MrLister因为toLowerCase返回一个新字符串,如果Val不是小写的,那么它会更快*。另一方面,速度有多快取决于文件的大小。*HotSpot可能会取代该呼叫,但我不会等待或依赖它……在这个简单化的场景中,为什么要担心速度?如果这个操作在正常的操作过程中进行了数百万次,我会开始担心它的性能,但是这里呢?我看不出有任何理由为此烦恼@Tom。谢谢你们的帮助!请注意:请不要在循环中调用Val.toLowerCase。创建一个自己的变量,将转换后的字符串保存在该循环之外,然后使用它。@Tom,我同意。另一方面,这可能是过早的优化,导致不必要地创建一个新变量,而且根本不会更快。@MrLister因为toLowerCase返回一个新字符串,如果Val不是小写的,那么它会更快*。另一方面,速度有多快取决于文件的大小。*HotSpot可能会取代该呼叫,但我不会等待或依赖它……在这个简单化的场景中,为什么要担心速度?如果这个操作在正常的操作过程中进行了数百万次,我会开始担心它的性能,但是这里呢?我看不出有任何理由为此烦恼@Tom。谢谢你们的帮助!