在Groovy中将元素添加到列表中会创建列表列表
我正在逐个解析列表中的每个元素在Groovy中将元素添加到列表中会创建列表列表,groovy,Groovy,我正在逐个解析列表中的每个元素 def List1 = (String[]) Data[2].split(',') 这个列表的一部分为我提供了一个包含分隔符的元素的列表 List1 = [TEST1!01.01.01, TEST2!02.02.02] 我尝试迭代这个列表的每个元素,并获得一个逗号分隔的列表 def List2 = [] List1.each { List2.add(it.split('!'))} 然而,结果是一个列表 [[TEST1,
def List1 = (String[]) Data[2].split(',')
这个列表的一部分为我提供了一个包含分隔符的元素的列表代码>
List1 = [TEST1!01.01.01, TEST2!02.02.02]
我尝试迭代这个列表的每个元素,并获得一个逗号分隔的列表
def List2 = []
List1.each { List2.add(it.split('!'))}
然而,结果是一个列表
[[TEST1, 01.01.01], [TEST2, 02.02.02]]
而不是[TEST1,01.01.01,TEST2,02.02.02]
如何避免这种情况并获得如上所示的列表?如何
def列表1=['TEST1!01.01.01','TEST2!02.02.02']
println list1.collect{it.split('!')}.flant()
当您执行List2.add(it.split(“!”)
时,您将列表添加到List2
,而不是单个字符串,因为.split()
从字符串创建列表
您应该首先使用.split()
创建列表,然后将列表的每个成员添加到列表2
以下是解决方案:
def List1 = ["TEST1!01.01.01", "TEST2!02.02.02"]
def List2 = []
List1.each { List1member ->
def subList = List1member.split('!')
subList.each { subListMember ->
List2.add(subListMember)
}
}
println(List2)
split()
返回一个列表。这就是为什么我得到了一份名单。我发现split()。
下面返回所需的输出
def List1 = (String[]) Data[2].split(',|!')