如果String包含使用IgnoreCase的两个单词之一

时间:2018-06-23 09:42:11

标签: java string contains ignore-case

我有一个程序,用户可以在该程序中键入多少度和多少比例(摄氏度,华氏度或开尔文)。如果用户希望退出会话,则当他们编写“退出,退出,退出,退出,退出或退出”时,程序应退出。我知道如何一次只使用其中之一进行编码,例如:

You can use ternary operator to accomplish this task:

    <?php
            $curmonth = mktime(0, 0, 0, date('m'), 1);
            $this_month = mktime(0, 0, 0, date('m'), 1, date('Y'));

            for ($i = 0; $i < 6; ++$i) {
                echo '<a href="?d=';
                echo date('Y-m', strtotime($i.' month', $this_month));
                echo '" role="button" '.(($i==0)?'class="active btn btn-sm btn-warning"':'class="btn btn-sm btn-warning"');
                echo '">';
                echo date('F', strtotime($i.' month', $this_month));
                echo '</a>';
            }
        ?>

我希望能够编写如下内容: if(temp.containsIgnoreCase(“ exit” ||“ quit”))

有人可以为我提供一些有关如何修正代码的准则的帮助吗?我曾尝试在此处进行搜索,但实际上没有任何作用,只有当括号内有两个不同的单词时,我才会出错。

3 个答案:

答案 0 :(得分:6)

尝试小写用户输入的内容,然后与String#matches进行比较:

if (temp.toLowerCase().matches("exit|quit")) {
    System.out.println("Ending");
    System.exit(0);
}

答案 1 :(得分:1)

使用匹配项来查找与string完全匹配的项。你可以这样:

 String quit = "quit";
    String exit = "exit";
    if(temp.toLowerCase().matches(quit)||temp.toLowerCase().matches(exit)){
            System.out.println("Ending");
System.exit(0);
    }

答案 2 :(得分:1)

Tim Biegeleisen的答案可能是正确的方法。如果您像我一样,只是不想使用String.toLowerCase()。您可以将Pattern#compile(String, int)与不区分大小写的标志一起使用:

Pattern pattern = Pattern.compile("exit|quit", Pattern.CASE_INSENSITIVE);
if(pattern.matcher(temp).matches()){
    System.out.println("ending");
    System.exit(0);
}