2013-03-07 4 views
0

문자열 목록에서 단어를 검색하는 좋은 방법은 무엇입니까? (대소 문자 구분)그루비에서 단어 목록을 검색하는 방법

예 :

def s = "This is a test" 

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

결과는 참 또는 거짓이 될 수 있습니다하지만 발견 단어의 수를 얻을 좋은 것 그 단어가 있다고 ..

답변

2

결과 그 단어가 있다고 참 또는 거짓이 될 수 있습니다하지만 발견 단어의 수를 얻을 좋은 것하고 ..

을 그때는 아마원하는 문자열에 포함되는 목록에서 4,263,210 단어 : 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) == [] 

그리고, 목록이 그들과 관련된 a truth value을 가지고, 당신은 if (wordsInString(someWords, someString)) { ... }처럼, 불리언 문맥에서 직접 결과를 사용할 수 있습니다.

+0

findAll에 대해 알지 못했습니다. 감사! – birdy

관련 문제