如何截断或删除或删除Groovy中“:”之后的字符串?

时间:2019-09-14 22:24:20

标签: string groovy split

我的列表如下所示,不确定是否有列表或其他任何内容,但下面是这样

apple:sdasdsddssd
banana:sdds
carrot:sdsadsdsdsdsdsdds

我要删除“:”之后的字符串

我的输出应如下所示

apple
banana
carrot

2 个答案:

答案 0 :(得分:1)

您也可以在字符串上使用takeWhile

def inputs = [
    'apple:sdasdsddssd',
    'banana:sdds',
    'carrot:sdsadsdsdsdsdsdds'
]

def result = inputs*.takeWhile { it != ':' }

结果将是一个包含字符串applebananacarrot的列表

答案 1 :(得分:0)

请参阅split docs

split返回一个数组。您正在打印该数组,而不是该数组的第一个元素。

groovy:000> list = ['apple:ccxxc', 'banana:sasasa', 'carrot:sdsdsdsddds']
===> [apple: ccxxc, banana:sasasa, carrot:sdsdsdsddds]
groovy:000> for (i in list) {
groovy:001>   def one = i.split(':')
groovy:002>   println(one[0])
groovy:003> }
apple
banana
carrot

您可能要考虑某种形式的映射,而不是仅仅打印出值,或者采用更具功能性的方法,具体取决于您的实际工作。

根据评论完全不同的问题进行了更新:

groovy:000> list = ['apple:ccxxc', 'banana:sasasa', 'carrot:sdsdsdsddds']
===> [apple:ccxxc, banana:sasasa, carrot:sdsdsdsddds]
groovy:000> for (i in list) {
groovy:001>   println(i.replaceAll(':(.*)', ''))
groovy:002> }
apple
banana
carrot