Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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/Groovy)_Java_Loops_Groovy - Fatal编程技术网

迭代字符串列表,查看列表中的所有字符串中是否存在特定字符串(Java/Groovy)

迭代字符串列表,查看列表中的所有字符串中是否存在特定字符串(Java/Groovy),java,loops,groovy,Java,Loops,Groovy,我有一个字符串列表(我从另一个方法获得),并希望验证所有字符串中是否存在某个字符串。也就是说,如果列表是[“我的名字是林赛”,“我的名字是比利”,“我的名字是约翰”],并且我正在测试是否所有字符串中都有“名字”,那么该方法应该返回true。但是如果列表是[“我的名字是林赛”,“我的名字是比利”,“我是约翰”],那么该方法应该返回false,因为“名字”不在最后一个字符串中。(我对编程非常陌生,如果我没有使用正确的术语/符号,我深表歉意)。不管怎么说,以下是我目前拥有的: def verifyEa

我有一个字符串列表(我从另一个方法获得),并希望验证所有字符串中是否存在某个字符串。也就是说,如果列表是[“我的名字是林赛”,“我的名字是比利”,“我的名字是约翰”],并且我正在测试是否所有字符串中都有“名字”,那么该方法应该返回true。但是如果列表是[“我的名字是林赛”,“我的名字是比利”,“我是约翰”],那么该方法应该返回false,因为“名字”不在最后一个字符串中。(我对编程非常陌生,如果我没有使用正确的术语/符号,我深表歉意)。不管怎么说,以下是我目前拥有的:

def verifyEachSuggestionContainsValueOf(String value) {
        List<String> customerMessageSuggestions = customerMessageAutoSuggestions()
        boolean stringPresent = false
        for (String suggestion : customerMessageSuggestions) {
            if (suggestion.contains(value)) {
                stringPresent = true
            }else{
                return false
            }
        }
        return stringPresent
    }
def verifyEachSuggestionContainsValueOf(字符串值){
列表customerMessageSuggestions=customerMessageAutoSuggestions()
布尔stringPresent=false
对于(字符串建议:customerMessageSuggestions){
if(建议.包含(值)){
stringPresent=true
}否则{
返回错误
}
}
返回当前位置
}
这是可行的,但我觉得必须有一种更干净的方法。如有任何建议,将不胜感激。谢谢大家!

***编辑以修复stringPresent在For循环中返回的问题。

纯Java:

return list.stream().allMatch(s -> s.contains("name"));
在Groovy中:

return list.every { it.contains("name") }
在纯Java中:

return list.stream().allMatch(s -> s.contains("name"));
在Groovy中:

return list.every { it.contains("name") }
def verifyEachSuggestionContainsValueOf(字符串值){
列表客户消息建议=
客户消息自动建议()
对于(字符串建议:customerMessageSuggestions){
如果(!suggestion.contains(值)){
返回错误
}
返回真值
}
布尔变量的声明是不必要的。如果任何字符串不包含所需的子字符串,则该方法可以立即返回false并退出该方法。否则,它将返回true。

def verifyEachSuggestionContainsValueOf(字符串值){
列表客户消息建议=
客户消息自动建议()
对于(字符串建议:customerMessageSuggestions){
如果(!suggestion.contains(值)){
返回错误
}
返回真值
}

布尔变量的声明是不必要的。如果任何字符串不包含所需的子字符串,该方法可以立即返回false并退出该方法。否则,它将返回true。

请注意,您的代码不正确。返回应该在for循环之外。您是对的,谢谢!请注意,您的代码不正确。返回应该在for循环之外。你说得对,谢谢!这不会返回列表吗?我只想要一个真/假响应。这两个都返回布尔值。阅读javadoc。第一个选项允许并行评估列表(如果从性能角度来看这样做有意义的话)。这不会返回一个列表吗?我只想要一个真/假响应。这两个都返回布尔值。请阅读javadoc。第一个选项允许并行评估列表(如果从性能角度来看这样做有意义的话)。