[英]Check if String contains String - Java
我有一个带有某些标签的String []。
在我的示例中: image.getRepoTags[0] = clone_envx:img1
和imageTag = img1
我的代码返回false。 为什么呢 如何检查imageTag is in String[] image.getRepoTags()?
if(Arrays.asList(image.getRepoTags()).contains(imageTag))
return true;
else
return false;
将数组转换为List将无法帮助您满足需要,因为您想在String
元素中进行搜索。
您可以迭代数组元素并在一个元素包含imageTag
立即停止:
return Arrays.stream(arr)
.anyMatch(s -> s.contains("imageTag"));
list.contains()
和string.contains()
之间有区别。 这是你的问题。 第一个检查整个对象是否完全匹配,第二个检查字符串的实际内容。
list.contains()
示例:
new String[]{"test", "test2", "img1"}
包含实际的字符串对象img1
(true)。 如果我们将数组更改为
new String[]{"test", "test2", "clone_envx:img1"}
那么它就不包含完美匹配(假)。
Java 7解决问题的方法:
for (String str : image.getRepoTags()) {
if(str.contains(imageTag)) {
return true;
}
}
return false;
第二次返回应该仅在迭代整个列表之后发生。 这就是循环之后的原因。
您应该循环或流式传输标签列表,并检查其中是否包含imageTag变量。
例如在Java 8中:
boolean anyMatch = Arrays.asList(image.getRepoTags()).stream()
.anyMatch(tag -> tag.contains("img1"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.