在Groovy中将SubString分隔为一个Character

时间:2012-06-29 06:24:09

标签: groovy

考虑以下字符串

String names = "Bharath-Vinayak-Harish-Punith"

我希望以字符串的形式获得输出,它只包含 Bh​​arath 。 (字符串直到第一次出现“ - ”运算符)。任何人都可以告诉我,我们怎么能这样做?

5 个答案:

答案 0 :(得分:19)

在一般情况下,我同意上一个答案中的split方法,但是,当只返回第一个字符串时,子字符串方法与程序员的工作量相同(并且,对于疯狂的大字符串,减少计算工作量):

String result = names.substring(0, names.indexOf('-'))

答案 1 :(得分:6)

如果你使用的是Groovy 2.0(昨天发布),你可以这样做:

String names = 'Bharath-Vinayak-Harish-Punith'
String result = names.takeWhile { it != '-' }
assert result == 'Bharath'

答案 2 :(得分:4)

您可以使用拆分:

def theName = names.split(/-/)[0]

split返回一个String数组,然后获取第一个数组元素。

答案 3 :(得分:1)

def names= 'Bharath-Vinayak-Harish-Punith'   
assert "Bharath" == (names =~ /^(.*?)\-/)[0][1]

答案 4 :(得分:1)

如果你有Apache Commons Lang库可用(它是各种其他框架的一部分,例如Grails):

 def result = StringUtils.substringBefore(names, '-')

祝你好运, 的Björn