次の文字列があります
String name = "John - Paul"
だから私がやりたいのは取得ですJohn
(すべての前に-
)。これは私がしようとしているものですが、前から-
後だけを取得することはできません
String parseName = name.substring(name.indexOf(" - ", -1), name.indexOf(" - ", 0));
これをどのように行うのですか?誰かが説明してくれませんか?
開始インデックスと終了インデックスを混在させています。最初の文字 (インデックス = 0) から のインデックスまでの部分文字列を取得する必要があります" - "
。
String parseName = name.substring(0, name.indexOf(" - "));
String.substringメソッドの引数は、文字列の開始と終了です。したがって、最初の値が0の場合、最初から選択しています。
String parseName = name.substring(0, name.indexOf(" - "));
(note: i do not want to use regex)のコメントに感謝しますが、引数として正規表現文字列を受け取るという事実にもかかわらず、split() を使用してこれを記述します。これが目的だからです。
String name = "John - Paul";
String firstName = name.split(" - ")[0];
そして、この場合、正規表現は indexOf() への引数ほど複雑ではありません。
substring() を使用した回答は、依然として完全に有効です。