使用Groovy

时间:2017-11-19 11:09:49

标签: list groovy replace trim

我在Groovy中有一个列表,其中包含以下格式的名称:

  • My_name_is_Jack
  • My_name_is_Rock
  • My_name_is_Sunn

如何修剪列表并仅获取最后一部分;即姓名 - Jack, Rock and Sunn。 (请注意,名称只有4个字符)

3 个答案:

答案 0 :(得分:3)

您可以选择其中一种方法。

  • 您可以将sustring与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)