2017-12-06 55 views
1

"test"という単語がログに2回以上現れているかどうかをチェックしたいと思います。 次のコードでは、'test'という単語が文字列に0回以上現れているかどうかを確認するだけです。 (ログに単語が含まれているかどうかをチェックするだけです)。私は言葉testの複数の出現のためのコードチェックのこの部分をできるように変更しなければならないのは何Groovy:文字列に複数の文字列が含まれていないか確認してください

if (env.logs.contains('test')) { 
     xxx 
} 

答えて

2

方法は、単純にこの行います

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 
} 
0

インクリメント値際の条件が

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

としてのように真の

あるとtestCount> 0は、あなたが望むものsomethinng書く場合condtion

を確認した場合。

+1

これを'testCount'を増やすにはこれを複数回呼び出さなければならず、' contains'を使う必要があります'contains'がtrueを返すなら、無限ループで終わる' test'の最初の出現を常に見つけることができません。 – sinclair

0

使用マッチャー:

def match = (env.logs =~ /test/) 
assert match.size() > 1 
関連する問題