Java Groovy:检查文本是否多次包含字符串

Java Groovy:检查文本是否多次包含字符串,java,groovy,Java,Groovy,我想检查单词“test”在日志中出现的次数是否超过1次。 下面的代码只是检查单词'test'在字符串中出现的次数是否超过0次。(它只是检查日志是否包含该单词) 如果条件为真,我必须更改什么才能让这部分代码检查单词test的多个外观?增加一个值 像 int testCount=0; if (env.logs.contains('test')) { testCount++; } 检查情况 如果testCount>0,则编写您想要的内容。方法contains()只执行以下操作: public

我想检查单词
“test”
在日志中出现的次数是否超过1次。 下面的代码只是检查单词
'test'
在字符串中出现的次数是否超过0次。(它只是检查日志是否包含该单词)


如果条件为真,我必须更改什么才能让这部分代码检查单词
test
的多个外观?

增加一个值

int testCount=0;
 if (env.logs.contains('test')) {
  testCount++;
 }
检查情况

如果testCount>0,则编写您想要的内容。

方法
contains()
只执行以下操作:

public boolean contains(CharSequence s) {
    return indexOf(s.toString()) > -1;
}
因此,您可以执行此操作来检查该值是否多次出现:

int index = env.logs.indexOf("test");
if ((index > -1) && (env.logs.indexOf("test", index + 1) > -1) ) {
        // do something here
}
使用matcher:

def match = (env.logs =~ /test/)
assert match.size() > 1

这不起作用,因为要使
testCount
增加,必须多次调用该函数,如果
contains
返回true,则
contains
始终会发现
test
的第一次出现以无休止的循环结束。
def match = (env.logs =~ /test/)
assert match.size() > 1