Groovy从字符串的开头删除字符

时间:2013-12-06 19:45:34

标签: groovy

请帮助我解决我面临的问题。我很少有不固定长度的字符串。 e.g

xxxxxxxxxxxxxxxxxx111
xxxxxxxxxxxx111
xxxxxxxxxxxxxx1111
xxxxxxxxxxx223

我想要的只是将它们转换为。

xxx111
xxx111
xxx1111
xxx223

我必须在groovy中执行此操作。 请帮助。

2 个答案:

答案 0 :(得分:2)

假设:

def strings = [ 'xxxxxxxxxxxxxxxxxx111',
                'xxxxxxxxxxxx111',
                'xxxxxxxxxxxxxx1111',
                'xxxxxxxxxxx223' ]

你可以尝试:

def cutdown =  strings.collect {
    ( it =~ /(.{3}[0-9]+)/ )[ 0 ][ 1 ]
}

或更短:

def cutdown = strings*.find( ~/.{3}[0-9]+/ )

答案 1 :(得分:0)

以下解决方案也有效

cardnumber.substring(StringUtils.countMatches(cardnumber, "X") - 3)