如何从列表中访问特定项目并使用Groovy替换它

时间:2017-09-28 11:34:48

标签: groovy

我在访问列表项并从中替换特定项时遇到问题。下面是用新行('\ n')拆分字符串后的结果列表。

bool PlayerWon(char player) {
return AnyRowComplete(player) || AnyColumnComplete(player) || AnyDiagonalComplete(player);
}

我的问题是如何从列表中访问特定项目,并使用Groovy脚本将其替换为空值。

我的意思是,例如,从列表中访问“Application”并使用Groovy脚本将其值设置为空('')。

2 个答案:

答案 0 :(得分:1)

就像您看到评论一样,您定义的数据是地图,而不是列表。

您可以简单地更新值,如下所示

def map = [Node: '', 'Message group': '', Application: 'appl', Severity: 'critical']
println map
//Update value
map.Application = ''
//or you can use any of below notation as well to update
//map['Application'] = ''
//map.put('Application', '') 
println map

您可以在线试用 demo

答案 1 :(得分:0)

如果它是一个列表,你可以构建一个新的只是迭代列表找到所需的项目并替换它。

def data='''
Node:
Message group:
Application: appl
Severity: critical
'''

def lst = new StringReader(data).readLines()

for(int i=0;i<lst.size();i++){
    if(lst[i].startsWith('Application:'))lst[i]='Application:'
}

println lst