我的列表如下所示,不确定是否有列表或其他任何内容,但下面是这样
apple:sdasdsddssd
banana:sdds
carrot:sdsadsdsdsdsdsdds
我要删除“:”之后的字符串
我的输出应如下所示
apple
banana
carrot
答案 0 :(得分:1)
您也可以在字符串上使用takeWhile
:
def inputs = [
'apple:sdasdsddssd',
'banana:sdds',
'carrot:sdsadsdsdsdsdsdds'
]
def result = inputs*.takeWhile { it != ':' }
结果将是一个包含字符串apple
,banana
和carrot
的列表
答案 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