从列表中查找字符串无法按预期方式使用contains

时间:2019-05-10 18:32:51

标签: groovy

我有一个定义如下的列表:

def list1=["Test1","Test2","Test3"]
String str="Test2"

println("Found The String is:"+list1.contains(str));

//It is returning false even though there is a matching string.

1 个答案:

答案 0 :(得分:0)

您在此处输入的内容可以正常工作,因此还有其他问题。我的猜测是您已经做了类似的事情:

String part = "Test"
String str="Test2"
def list1=["${part}1","${part}2","Test3"]
def found = list1.contains(str)

在这种情况下,found将为假...,因为:

"${'test'}" 不等于"test",对于某些相等的定义...即使将它们都打印出来也是如此。

原因如下:Groovy different results on using equals() and == on a GStringImpl