0

文字列から単語のリストを検索する良い方法は何ですか? (大文字小文字を区別しません)

例:

def s = "This is a test"

def l = ["this", "test"]

結果は true または false のいずれかですが、見つかった単語の数を取得し、それらの単語が..

4

1 に答える 1

2

結果はtrueまたはfalseのいずれかになりますが、見つかった単語の数とそれらの単語が見つかったことがわかります。

次にfindAll、文字列:Dに含まれているそのリストの単語が必要になる可能性があります。

def wordsInString(words, str) {
    def strWords = str.toLowerCase().split(/\s+/)
    words.findAll { it.toLowerCase() in strWords }
}

def s = "This is a test"
assert wordsInString(["this", "test"], s) == ["this", "test"]
assert wordsInString(["that", "test"], s) == ["test"]
assert wordsInString(["that", "nope"], s) == []

// Notice that the method conserves the casing of the words.
assert wordsInString(["THIS", "TesT"], s) == ["THIS", "TesT"]

// And does not match sub-words.
assert wordsInString(["his", "thi"], s) == []

また、リストには真理値が関連付けられているため、結果をのようなブールコンテキストで直接使用できますif (wordsInString(someWords, someString)) { ... }

于 2013-03-07T22:05:27.927 に答える