LINUX.ORG.RU

Groovy: contains()

 


0

1

Всем привет!

Кто-то может объяснить как работает contains()?

Есть список строк:

def list = ["path=repo/dir/1.2.3-1278", "path=path=repo/dir/1.2.3-1279","path=repo/dir/3.3.3-1281"

Я хочу получать только то, что содержит 3.3.3 и пишу такую функцию:

def String[] getVersionList(String[] list){
    def versionList = [];
    list.each{
        if (it.contains('3.3.3')){
            versionList << it
        }
    return versionList
    }
}

Однако, versionList содержит в себе вообще все строки из исходного листа.

Если тут нужно использовать что-то другое, то что?



Последнее исправление: gadzira (всего исправлений: 1)

def list = [
	"path=repo/dir/1.2.3-1278",
	"path=path=repo/dir/1.2.3-1279",
	"path=repo/dir/3.3.3-1281"
	]

def versionList = []

list.each {
	if (it.contains('3.3.3')){
		versionList << it
	}
}

versionList.each { println it }

вывод: path=repo/dir/3.3.3-1281

barberry ★★
()
Последнее исправление: barberry (всего исправлений: 1)

Можно еще вот так:

println list.find { it.contains('3.3.3') }
barberry ★★
()

each вроде как возвращает весь list by design, наверное надо

class MyClass {
    def versionList = []
    
    void doSomeVersionList(list){
        list.each{
            if (it.contains('3.3.3')){
                this.versionList << it
            }
        }
    }

}

def a = new MyClass()
a.doSomeVersionList(list)
println a.getVersionList()

system-root ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.