こんにちは!フリーランスのオータケです。
Java言語で文字列の一部を抽出したい場合、substringを使うかと思います。この記事では、substringについて
- substringの使い方
- 開始位置を指定して文字を切り出す
- 開始、終了位置を指定して文字を切り出す
という基本的な内容から、右から(後ろから)切り出す方法や一文字だけを切り出す方法などの応用的な使い方に関しても解説していきます。今回はsubstringについて、わかりやすく解説します!
この記事の目次
substringの使い方
substringは以下のように記述して使用します。
substring(int beginIndex, int endIndex)
substringは部分文字列を返します。部分文字列はbeginIndexから始まり、endIndex - 1にある文字までが範囲です。ですので、部分文字列の長さはendIndex-beginIndexになります。
第二引数のendIndexは省略可能で、その場合は部分文字列はbeginIndexから始まり最後の文字までが範囲となります。サンプルコードで確認しましょう。
開始位置を指定して文字を切り出す
まずは開始位置を指定して文字を取得する方法を見てみましょう!
public class Main { public static void main(String[] args) { String country = "japan,america,russia"; System.out.println(country.substring(6)); System.out.println(country); } }
実行結果:
america,russia japan,america,russia
このサンプルコードでは、substringメソッドで文字列の7文字目から最後の文字までを返しています。そしてこのsubstringメソッドを使った後の変数countryですが、始めに初期化した状態の時と変わっていません。
あくまでも一部を切り出した文字列を新たに返しているということになります。
開始、終了位置を指定して文字を切り出す
次に特定の範囲だけ取得したいという場合についてご紹介します。開始位置と終了位置を指定します。
public class Main { public static void main(String[] args) { String country = "japan,america,russia"; System.out.println(country.substring(6, 13)); } }
実行結果:
america
このサンプルコードの場合は、substringメソッドで切り取りの開始位置7文字目として終了位置13文字目という指定をしています。こうすることで「america」だけを抜き出すことができています。
注意するところは、第一引数も第二引数も位置を指定するというところです。第二引数は切り取りたい文字数を指定するわけではない<ということです。