正如标题中所述,我试图循环Jenkins Groovy管道脚本中字符串的ArrayList
(使用脚本化管道语法)。让我把整个“问题”告诉你。
我从一串用空格分隔的文件系统位置开始:“/var/x /var/y /var/z......”就像这样。我循环这个字符串,将每个字符添加到一个tempstring
。然后当我到达一个空格时,我将该临时字符串添加到数组中并重新启动。这里有一些代码显示了我是如何做到这一点的:
def full_string = "/var/x /var/y /var/z"
def temp = ""
def arr = [] as ArrayList
full_string.each {
if ( "$it" == " " ) {
arr.add("$temp") <---- have also tried ( arr << "$temp" )
temp = ""
} else {
temp = "$temp" + "$it"
}
}
// if statement to catch last element
看,这个问题是,如果我以后在数组上循环,它会决定在每个单独的字符上循环,而不是像我希望的那样在整个/var/x
字符串上循环。
我是Groovy新手,所以我在构建这个管道的过程中一直在学习。使用Jenkins版本2.190。1如果这有帮助的话。我已经查看了SO和Groovy文档,以及Jenkins上的管道语法文档。似乎找不到我一直在找的东西。我确信我的解决方案不是最优雅或最有效的,但我会先了解它是如何工作的,然后再尝试从中获得最大的性能。
我发现了这个问题,但这同样没有帮助:在Groovy中动态地向ArrayList添加元素。
编辑:我试图将旧的公司c-shell构建脚本翻译成詹金斯管道。我的初始字符串是我们所有节点上可用的环境变量,我也需要在管道中提供。
TL;DR-我需要能够从字符串中以空格分隔的值创建一个数组,然后能够在所述数组上循环,并且每个“元素”都是一个完整的字符串,而不是单个字符,这样我才能正确地运行管道步骤。
试着在你的Jenkins脚本控制台(your.jenkins.url.yourcompany.com/script
)运行这个:
def full_string = "/var/x /var/y /var/z"
def arr = full_string.split(" ")
for (i in arr) {
println "now got ${i}"
}
结果:
now got /var/x
now got /var/y
now got /var/z
我用字符串变量在java中创建了一个for循环。我想向变量添加一个字符,直到该变量等于一组字符。我创建了for循环。控制台中没有显示错误。但是也没有输出”(我哪里错了?
我正在制作一个程序,它从用户那里获取一个字符串并用分隔符逐字分隔它,它几乎完成了。但是,在第一个完整循环之后,来自用户的下一个输入不会通过最后一个while循环。 下面是我要说的代码片段: 我想我需要在单词increment和print行周围再循环一次,并在输入中使用continue序列。hasNext()循环,因为这就是我使用int来运行类似程序的方式,但我不确定这将如何处理字符串。 有什么建议
本文向大家介绍如何在Python中创建长的多行字符串?,包括了如何在Python中创建长的多行字符串?的使用技巧和注意事项,需要的朋友参考一下 为了创建多行字符串,我们使用三对来代替使用一对单引号/双引号。例如, 这将给出输出: 请注意,您不能使用此符号插入字符串。此符号也用于在Python中定义文档字符串。
问题内容: 我正在使用ya-csv库,它希望将文件或流作为输入,但是我有一个字符串。 如何将该字符串转换为Node中的流? 问题答案: 从节点12.3开始,stream.Readable有一个方法可以轻松地从任何可迭代对象(包括数组文字)创建流:
我需要将字符串转换为JSONObject
本文向大家介绍如何从Java ArrayList创建字符串?,包括了如何从Java ArrayList创建字符串?的使用技巧和注意事项,需要的朋友参考一下 要将ArrayList的内容转换为String,创建一个StringBuffer对象,将ArrayList的内容附加到该对象,最后使用toString()方法将StringBuffer对象转换为String 。 示例 输出结果