我在Groovy
中有一个列表,其中包含以下格式的名称:
如何修剪列表并仅获取最后一部分;即姓名 - Jack, Rock and Sunn
。 (请注意,名称只有4个字符)
答案 0 :(得分:3)
您可以选择其中一种方法。
lastIndexOf
replace
方法,以空字符串My_name_is_
脚本(使用第一种方法):
def list = ['My_name_is_Jack', 'My_name_is_Rock', 'My_name_is_Sunn']
//Closure to get the name
def getName = { s -> s.substring(s.lastIndexOf('_')+1, s.size()) }
println list.collect{getName it}
如果您想使用replace
,请使用以下闭包。
def getName = { s -> s.replace('My_name_is_','') }
您可以在线快速尝试 demo
答案 1 :(得分:3)
或者
def list = ['My_name_is_Jack', 'My_name_is_Rock', 'My_name_is_Sunn']
println list*.split('_')*.getAt(-1)
答案 2 :(得分:1)
您可以删除公共前缀:
def names = [ "My_name_is_Jack", "My_name_is_Rock", "My_name_is_Sunn", ]
assert ['Jack', 'Rock', 'Sunn'] == names*.replaceFirst('My_name_is_','')
或者由于你实际上对最后四个字符感兴趣,你也可以选择:
assert ['Jack', 'Rock', 'Sunn'] == names*.getAt(-4..-1)