我有一个返回多行字符串的方法。我想解析字符串并获取每行的第一个单词。
方法 getText()
返回:
Lorem ipsum dolor
sit amet odio
magnis vitae iaculis
我只想得到
Lorem
sit
magnis
我当前的代码是
def projectString = getText()
def projects = projectString.substring(0, projectString.indexOf(' '))
当然那只会得到第一行的第一个词。我可以在基于新行的字符串上使用 while 循环,并使用上面的 substring
方法获取第一个单词,但我觉得 Groovy 有一种更绝妙的方法来实现这一点。
最初我想在方法调用结果上使用管道,比如
def projects = getText() | sh "awk '{print $1}'"
但我无法让它工作。
最佳答案
这是一个例子:
def projectString = """Lorem ipsum dolor
sit amet odio
magnis vitae iaculis"""
projectString = projectString
.readLines()
.collect { it[0.. it.indexOf(' ')] }
.join("\n")
println projectString
可以上网查:https://groovyconsole.appspot.com/script/5132242514870272
关于groovy - 如何在 Groovy 中获取字符串每一行的第一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46105354/