考虑下面的字符串
String names = "Bharath-Vinayak-Harish-Punith"
我想以仅包含Bharath的字符串形式获得输出。(字符串直到第一次出现“-”运算符)。任何人都可以告诉我,我们怎么能这样做?
考虑下面的字符串
String names = "Bharath-Vinayak-Harish-Punith"
我想以仅包含Bharath的字符串形式获得输出。(字符串直到第一次出现“-”运算符)。任何人都可以告诉我,我们怎么能这样做?
在一般情况下,我同意上split
一个答案中的方法,但是,当只返回第一个字符串时,子字符串方法对程序员来说是相同的工作量(而且,对于非常大的字符串,计算工作量更少):
String result = names.substring(0, names.indexOf('-'))
如果您使用的是 Groovy 2.0(昨天发布),您可以执行以下操作:
String names = 'Bharath-Vinayak-Harish-Punith'
String result = names.takeWhile { it != '-' }
assert result == 'Bharath'
您可以使用拆分:
def theName = names.split(/-/)[0]
split 返回一个 String 数组,然后获取第一个数组元素。
def names= 'Bharath-Vinayak-Harish-Punith'
assert "Bharath" == (names =~ /^(.*?)\-/)[0][1]
如果您有可用的Apache Commons Lang库(它是各种其他框架的一部分,例如 Grails):
def result = StringUtils.substringBefore(names, '-')
最好的问候, 比约恩