Javaで文字列を切り出す方法について書いています。
Javaで文字列を切り出すには、文字列からsubstringメソッドを呼び出して使うと良いです。
substringメソッドを使う
substringメソッドを使うことで、文字列を切り出すことができます。
例えば、下記のように使うことができます。
String text = "hello, world";
String result = text.substring(7);
System.out.println(result); // world
最初にtext
変数に対して、文字列の「hello, world
」を代入しました。
次の処理で、text
変数からsubstringメソッドを呼び出しています。
これで、text
変数に入っている文字列を切り出すことができます。
引数に渡しているのは、文字列の切り出しを開始する位置になります。
今回は「7」を渡しているので、文字先頭(h
)を0番目から数えて、7番目の「w
」から切り出し始めます。
切り出した文字列をresult
変数に格納しました。
result
変数を出力すると、結果は「world
」となります。
文字列の7番目の位置から切り出し始めて、最後までの文字列が返ってきました。
切り出しの終わり位置を指定する
文字列の切り出し終わりの位置を指定したい場合には、substringメソッドの第2引数を使います。
例えば、下記のようにします。
String fruitText = "apple/grape/orange";
String fruit = fruitText.substring(6, 11);
System.out.println(fruit); // grape
最初にfruitText
変数に対して、文字列の「apple/grape/orange
」を代入しています。
その次の処理で、substringメソッドを使っていますが、先ほどと違って第2引数も使っています。
第1引数は開始位置で、第2引数は終了する位置です。
開始位置は切り出したい文字の始まり位置で、終了位置は切り出し終わる文字の次の位置を指定します。
今回は第1引数に「6」を指定しているので、開始位置は「g
」になり
第2引数には「11」を指定しています、終了位置は「e
」となります。
結果をfruit
変数に格納して、出力すると「grape
」となりました。
開始位置から終了位置までの文字列が切り取れました。
後ろから切り出す
substringメソッドにマイナス値を指定して、後ろから切り出すことはできません。
lengthメソッドを使って、文字列の長さから切り出したい文字分引くことで、後ろから切り出したい文字数を指定できます。
String fruitText = "apple/grape/orange";
String fruit = fruitText.substring(fruitText.length() - 6);
System.out.println(fruit); // orange
fruitText
変数に対して、先ほとど同様に「apple/grape/orange
」を代入しています。
次の処理で、substringメソッドに対して、文字列の長さから取得したい文字数を引いた値を渡しています。
結果、後ろから6文字の「orange
」が取得できました。
このように、後ろから文字数を指定したように動作させることができます。
文字列の範囲を超えて指定したら?
文字列の範囲を超えた位置を指定すると、下記のようにエラー(StringIndexOutOfBoundsException
)が発生します。
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 14
文字列の範囲を超えないように注意していきましょう。
substringメソッドの引数と戻り値
substringメソッドの引数と文字列をまとめます。
引数
引数は第1引数が必須で、第2引数がオプションでした。
引数 | 必須/オプション | 例 | 説明 |
---|---|---|---|
第1引数:開始位置 | 必須 | text.substring(3) | 切り出し始めたい文字の位置を指定する |
第2引数:終了位置 | オプション | text.substring(3, 6) | 切り出したい最後の文字の位置+1の場所を指定する |
戻り値
切り出した文字列が返ってきます。
文字列を切り出す方法まとめ
今回はJavaで文字列を切り出す方法について書きました。
記事の内容をまとめると、下記のようになります。
・substringの第1引数には開始位置を指定した。
・substringの第2引数には終了位置(終了したい文字の位置+1)を指定した。
・substringメソッドでは切り出した後の文字列が返ってきた。
コメント