Trim 列表中的名称使用 Groovy

Trim the names in the list using Groovy

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

我怎样才能 trim 列表并只得到它的最后一部分;即名称 - Jack, Rock and Sunn。 (请注意名字只有4个字符长)

在这里,您可以选择其中一种方法。

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

或者

def list = ['My_name_is_Jack', 'My_name_is_Rock', 'My_name_is_Sunn']

println list*.split('_')*.getAt(-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)