考虑以下字符串
String names = "Bharath-Vinayak-Harish-Punith"
我希望以字符串的形式获得输出,它只包含 Bharath 。 (字符串直到第一次出现“ - ”运算符)。任何人都可以告诉我,我们怎么能这样做?
答案 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