繁体   English   中英

检查字符串是否包含字符串-Java

[英]Check if String contains String - Java

我有一个带有某些标签的String []。

在我的示例中: image.getRepoTags[0] = clone_envx:img1imageTag = 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM