12

以下の文字列を検討してください

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

Bharathのみを含む文字列の形式で出力を取得したい。(「-」演算子の最初の出現までの文字列)。誰でも教えてください、どうすればこれを行うことができますか?

4

5 に答える 5

24

一般的なケースでは、前の回答のメソッドに同意しsplitますが、最初の文字列のみを返す場合、サブストリングメソッドはプログラマーにとって同じ量の作業になります(そして、非常に大きな文字列の場合、計算作業が少なくなります)。

String result = names.substring(0, names.indexOf('-'))
于 2012-06-29T07:21:28.653 に答える
8

Groovy 2.0 (昨日リリース) を使用している場合は、次のことができます。

String names = 'Bharath-Vinayak-Harish-Punith'
String result = names.takeWhile { it != '-' }
assert result == 'Bharath'
于 2012-06-29T07:41:28.933 に答える
7

分割を使用できます:

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

split は文字列配列を返し、最初の配列要素を取得します。

于 2012-06-29T06:50:36.513 に答える
1

Apache Commons Langライブラリ (Grails などの他のさまざまなフレームワークの一部) を利用できる場合:

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

敬具、ビョルン

于 2014-11-17T10:56:01.240 に答える
1
def names= 'Bharath-Vinayak-Harish-Punith'   
assert "Bharath" == (names =~ /^(.*?)\-/)[0][1]
于 2012-06-29T10:05:16.567 に答える