请帮助我解决我面临的问题。我很少有不固定长度的字符串。 e.g
xxxxxxxxxxxxxxxxxx111
xxxxxxxxxxxx111
xxxxxxxxxxxxxx1111
xxxxxxxxxxx223
我想要的只是将它们转换为。
xxx111
xxx111
xxx1111
xxx223
我必须在groovy
中执行此操作。
请帮助。
答案 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)