Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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 如何检查字符串是否包含不区分大小写的单词?_Java_String_Contains_Case Insensitive - Fatal编程技术网

Java 如何检查字符串是否包含不区分大小写的单词?

Java 如何检查字符串是否包含不区分大小写的单词?,java,string,contains,case-insensitive,Java,String,Contains,Case Insensitive,我看了其他类似的问题,但找不到一个有效的。我试图检查这个人的回答是否有“是”的意思,所以我检查了几个表示“是”的词。但如果他们回答是,我的代码将无法工作,因为它区分大小写,我不知道该怎么办 代码: 您只需使用删除区分大小写: if (fq.toLowerCase().contains("yes") || fq.toLowerCase().contains("yeah") || fq.toLowerCase().contains("yup") || fq.toLowerCase().contain

我看了其他类似的问题,但找不到一个有效的。我试图检查这个人的回答是否有“是”的意思,所以我检查了几个表示“是”的词。但如果他们回答是,我的代码将无法工作,因为它区分大小写,我不知道该怎么办

代码:

您只需使用删除区分大小写:

if (fq.toLowerCase().contains("yes") || fq.toLowerCase().contains("yeah") || fq.toLowerCase().contains("yup") || fq.toLowerCase().contains("mhm") || fq.toLowerCase().contains("yea") || fq.toLowerCase().contains("sure"))
您只需使用删除区分大小写:

if (fq.toLowerCase().contains("yes") || fq.toLowerCase().contains("yeah") || fq.toLowerCase().contains("yup") || fq.toLowerCase().contains("mhm") || fq.toLowerCase().contains("yea") || fq.toLowerCase().contains("sure"))
将您的fq.containsys更改为:fq.toLowerCase.containsys 因此,基本上,您将用户输入的内容转换为小写,并与小写的yes匹配。所以基本上你是在做。不区分大小写的匹配

对其他条件也执行同样的操作。

将fq.containsys更改为:fq.toLowerCase.containsys 因此,基本上,您将用户输入的内容转换为小写,并与小写的yes匹配。所以基本上你是在做。不区分大小写的匹配


对其他条件也要这样做。

只需将文本改为小写即可。并将单词存储在数组中,以获得更清晰的代码

String words[] = ["yes", "yeah", "mhm", "yup"];
boolean accept = false;
for (int i=0; i<words.length(); i++){
    if (text.toLowerCase().contains(words[i])){
        accept = true;
        break;
    }
}
if (accept){
    //do what you want to do.
}

把那个文本改成小写。并将单词存储在数组中,以获得更清晰的代码

String words[] = ["yes", "yeah", "mhm", "yup"];
boolean accept = false;
for (int i=0; i<words.length(); i++){
    if (text.toLowerCase().contains(words[i])){
        accept = true;
        break;
    }
}
if (accept){
    //do what you want to do.
}

您应该更好地使用专门的库:org.apache.commons.lang3.StringUtils.containsIgnoreCaseABCDEFGHIJKLMNOP,gHi

您不应该调用toUpperCase/toLowerCase,因为可能会发生奇怪的地区敏感事件:

"ß".toUpperCase() // "SS"

您应该更好地使用专门的库:org.apache.commons.lang3.StringUtils.containsIgnoreCaseABCDEFGHIJKLMNOP,gHi

您不应该调用toUpperCase/toLowerCase,因为可能会发生奇怪的地区敏感事件:

"ß".toUpperCase() // "SS"

要在一个语句中检查多个单词,并且不区分大小写,请使用regex

if (fq.matches("(?i).*\\b(yes|Yeah|Yup|mhm|Yea|sure)\\b.*"))
事实上,你需要正则表达式,因为你不想我是雅皮士,即使它包含Yup。这就是\b术语的由来-它表示单词边界。如果使用了您的代码.equals,我会更简单地建议:

if (fq.matches("(?i)yes|Yeah|Yup|mhm|Yea|sure"))
这个词?我的意思是不区分大小写

表达式a | b | c是一个替换;|是正则表达式中的逻辑OR

您需要。*任意一端,因为匹配项必须匹配整个字符串才能为true


如果您使用.toLowerCase.contains,您必须为您要查找的每个单词调用该函数,代码将是一个火车失事。

要在一个语句中检查多个单词,并且不区分大小写,请使用regex

if (fq.matches("(?i).*\\b(yes|Yeah|Yup|mhm|Yea|sure)\\b.*"))
事实上,你需要正则表达式,因为你不想我是雅皮士,即使它包含Yup。这就是\b术语的由来-它表示单词边界。如果使用了您的代码.equals,我会更简单地建议:

if (fq.matches("(?i)yes|Yeah|Yup|mhm|Yea|sure"))
这个词?我的意思是不区分大小写

表达式a | b | c是一个替换;|是正则表达式中的逻辑OR

您需要。*任意一端,因为匹配项必须匹配整个字符串才能为true


如果您使用.toLowerCase.contains,您将不得不为您要查找的每个单词调用它,代码将是火车失事。

您是否考虑过使用toLowerCase将输入的文本转换为所有小写,然后在小写输入上使用contains?考虑这一点:输入。注意:您需要将预期响应中的任何大写字母转换为小写。是的,转换为是的。是的,我有,我认为这对我不起作用。但是我可以再试一次,谢谢@tunaki我实际上不认为这是一个骗局,因为OP想要匹配几个单词中的一个,这有一个不同的解决方案。@波希米亚人对我来说,问题的核心仍然是如何使一个不区分大小写的包含操作。在这种情况下,要做一个或多个,OP应该首先知道如何做一个,因为有很多不同的解决方案,然后问一个关于如何用当前解决方案做2的新问题。但是这个关联问题的答案可以很容易地用多个词来调整,所以我不认为这是一个问题。我发现了,但它是特定于ArrayList的,我觉得它不会有什么帮助。您是否考虑过将输入的文本转换为所有小写字母,然后使用toLowerCase,然后在小写输入中使用contains?考虑这一点:输入。注意:您需要将预期响应中的任何大写字母转换为小写。是的,转换为是的。是的,我有,我认为这对我不起作用。但是我可以再试一次,谢谢@tunaki我实际上不认为这是一个骗局,因为OP想要匹配几个单词中的一个,这有一个不同的解决方案。@波希米亚人对我来说,问题的核心仍然是如何使一个不区分大小写的包含操作。在这种情况下,要做一个或多个,OP应该首先知道如何做一个,因为有很多不同的解决方案,然后问一个关于如何用当前解决方案做2的新问题。但是这个关联问题的答案可以很容易地用多个词来调整,所以我不认为这是一个问题。我发现了,但它是特定于ArrayList的,我觉得它不会有更多帮助。谢谢你,s
太多了!有趣的是,我以为我试过了,但现在当我使用它时,它起作用了:D!随时都可以!请务必阅读其他答案并尝试一下,因为有多种方法可以剥这只猫的皮,每种方法在不同的情况下都会更好。非常感谢!有趣的是,我以为我试过了,但现在当我使用它时,它起作用了:D!随时都可以!请务必阅读其他答案,并尝试一下,因为有多种方法可以剥这只猫的皮,每种方法在不同的情况下都会更好。我会让它成为一种功能,但这是一种明智的方式!我会让它成为一个函数,但这是一个聪明的方法!