groovy - 如何在 Groovy 中获取字符串每一行的第一个单词

标签 groovy jenkins-pipeline

我有一个返回多行字符串的方法。我想解析字符串并获取每行的第一个单词。

方法 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/

相关文章:

未启用Grails CORS,因为没有来源

Groovy 2.1.0 带有 @CompileStatic 的 switch-case-break 语句的奇怪行为

java - 如何在java中将字符串转换为文件对象?

java - 使用 java 从 dir 命令中删除卷信息行

java - 升级到新的 Jenkins 版本后,构建失败

jenkins - 使用 Spock 的 Groovy 共享库测试流水线步骤方法

jenkins - 使用 init.groovy.d 脚本中的管道初始化 Jenkins 2.0

regex - 如何找到文件路径字符串的一部分?

c++ - Jenkinsfile 运行 qmake

postgresql - Jenkins docker 许可