在Groovy中获取令牌化字符串的最后一个单词

26

一个基本的字符串处理问题...我有一个被分词的字符串,例如val1.val2.val3.....valN 如何从上述字符串中获取最后一个单词valN。

1个回答

55
如果你在一个列表中的下标操作符subscript operator中传入了一个负数下标n,那么你会得到倒数第n个元素。因此,-1元素是最后一个元素:
def words = 'val1.val2.val3'
def last = words.tokenize('.')[-1]
assert last == 'val3'

更新: 你还可以使用更易读的方法last

def last = words.tokenize('.').last()

你如何使用.last()替换words.tokenize('.')[-2] - A. Man
1
@A.Man,last()只返回最后一个元素,我认为没有获取倒数第二个元素的方法。你可以尝试使用array.dropRight(1).last(),但在我看来,此时访问array[-2]更易读。 - epidemian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接