2017-11-19 14 views

답변

3

당신은 방법의 하나 하나 함께 할 것입니다. 당신이 사용하려는 경우

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} 

:

  • 당신은 (첫 번째 방법을 사용하여) 빈 문자열

스크립트와 My_name_is_을 제거하기 위해 lastIndexOf

  • 또는 replace 방법 sustring을 사용할 수 있습니다 replace 후 폐쇄 이하로 사용합니다.

    def getName = { s -> s.replace('My_name_is_','') } 
    

    빠르게 온라인으로 시도 할 수 demo

  • +0

    감사합니다. 이것은 도움이되었습니다! – Dev

    3

    또는

    def list = ['My_name_is_Jack', 'My_name_is_Rock', 'My_name_is_Sunn'] 
    
    println list*.split('_')*.getAt(-1) 
    
    1

    당신은 일반적인 접두사를 제거 할 수 있습니다 :

    def names = [ "My_name_is_Jack", "My_name_is_Rock", "My_name_is_Sunn", ] 
    
    assert ['Jack', 'Rock', 'Sunn'] == names*.replaceFirst('My_name_is_','') 
    

    또는 당신이 실제로에 interrested 때문에를 마지막 4 개의 문자, 당신도 따 KE 그 :

    assert ['Jack', 'Rock', 'Sunn'] == names*.getAt(-4..-1)