1

次の文字列があります

String name = "John - Paul"

だから私がやりたいのは取得ですJohn(すべての前に-)。これは私がしようとしているものですが、前から-後だけを取得することはできません

String parseName = name.substring(name.indexOf(" - ", -1), name.indexOf(" - ", 0));

これをどのように行うのですか?誰かが説明してくれませんか?

4

3 に答える 3

6

開始インデックスと終了インデックスを混在させています。最初の文字 (インデックス = 0) から のインデックスまでの部分文字列を取得する必要があります" - "

String parseName = name.substring(0, name.indexOf(" - "));
于 2012-09-07T15:26:12.837 に答える
0

String.substringメソッドの引数は、文字列の開始と終了です。したがって、最初の値が0の場合、最初から選択しています。

String parseName = name.substring(0, name.indexOf(" - ")); 
于 2012-09-07T15:27:24.767 に答える
0

(note: i do not want to use regex)のコメントに感謝しますが、引数として正規表現文字列を受け取るという事実にもかかわらず、split() を使用してこれを記述します。これが目的だからです。

String name = "John - Paul";
String firstName = name.split(" - ")[0];

そして、この場合、正規表現は indexOf() への引数ほど複雑ではありません。

substring() を使用した回答は、依然として完全に有効です。

于 2012-09-07T15:58:40.297 に答える