【问题标题】:Convert String variable to a List [Groovy]将字符串变量转换为列表 [Groovy]
【发布时间】:2013-02-14 00:32:03
【问题描述】:

如何将此String 变量转换为List

def ids = "[10, 1, 9]"

我尝试过:ListtoList();

【问题讨论】:

  • 已经是groovy中的列表了?
  • 这是一个List,你想把它转换成String吗?
  • 但是当我做 ids.each{println it} 我有这个结果:[ 1 0 , 1 ]

标签: java string list groovy


【解决方案1】:
def l = Eval.me(ids)

获取 groovy 代码字符串(在本例中为“[10,1,9]”)并将其评估为 groovy。这将为您提供一个包含 3 个整数的列表。

【讨论】:

  • @AlexanderSuraphel 语言错误。
  • @chrylis 是什么意思?
  • @AlexanderSuraphel 我会为他回答:您的文章与 JavaScript 相关(特别是 JSLint)。但问题本身是关于 Groovy 的。
  • 我不会考虑使用 Eval 作为安全选项。
【解决方案2】:
def l = ids.split(',').collect{it as int}

【讨论】:

  • 我想你想把一个字符串 "10,1,9" 变成一个列表 [10,1,9]
  • def id = ids.substring(1,ids.length()-1) def l= id.split(',').collect{it as int}
  • 我找到了这个解决方案,但我认为不是最好的:def id = ids.substring(1,ids.length()-1) def l= id.split(',') .collect{it as int}
  • 这对我很有用,特别是在 Jenkins 中,并且使用 String 而不是 Int:files = "'f1','f2'" list = files.split(',').collect{it as String} > list==['f1', 'f2'] > list[1]=='f2'
  • 在编辑窗口关闭后更新我的:list = versionFile.split(',').collect() 适用于字符串。
【解决方案3】:

使用内置的JsonSlurper!

Using Eval is dangerous,一旦数据类型改变,字符串操作解决方案将失败,因此它不适应。所以最好使用JsonSlurper

import groovy.json.JsonSlurper

//List of ints 
def ids = "[10, 1, 9]"
def idList = new JsonSlurper().parseText(ids)

assert 10 == idList[0]

//List of strings 
def ids = '["10", "1", "9"]'
idList = new JsonSlurper().parseText(ids)

assert '10' == idList[0]

【讨论】:

  • 这绝对应该被接受为正确答案。
  • 对于使用字符串的我来说,这只适用于:'["string1", "string2"]' 而不是 "['string1', 'string2']" 从 jenkins 运行代码。
  • @herm 自己测试过,你是对的。我已经更新了答案
【解决方案4】:

这对我有用。而Eval.me 在 Jenkins groovy 脚本中不起作用。我试过了。

assert "[a,b,c]".tokenize(',[]') == [a,b,c]

【讨论】:

  • Eval.me 对我也不起作用(Jenkins groovy 脚本)。但是,您的解决方案给出了错误的结果。我的字符串是“['/a/b/c/d@2/e/f/g/h/i/j/k/l.py::m[n-10-3-9-0/8- 17-12]',]" (实际上我在字符串中有更多的条目,但这是一般的想法)。标记化只返回内部列表,即“[n-10-3-9-0/8-17-12]'”
  • 得分较高的答案对我不起作用。这个做到了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-13
  • 2015-02-13
  • 1970-01-01
  • 2019-04-11
  • 1970-01-01
  • 2016-01-25
  • 1970-01-01
相关资源
最近更新 更多