文字列から開始と終了インデックスを指定して部分文字列を取得する

広告

文字列の中の指定した範囲の部分文字列を取得するには String クラスで用意されている substring メソッドを使用します。ここでは Java で開始インデックスと終了インデックスを指定して文字列の中の部分文字列を取得する方法について解説します。

String.substringメソッドの使い方

文字列から指定した範囲の部分文字列を取得するには String クラスで用意されている substring メソッドを使用します。書式は次のとおりです。

public String substring?(int beginIndex, int endIndex)

パラメータ:
beginIndex - 開始インデックス(この値を含む)
endIndex - 終了インデックス(この値を含まない)

戻り値:
指定された部分文字列

例外:
IndexOutOfBoundsException - beginIndexが負であるか、endIndexがこのStringオブジェクトの長さより大きいか、あるいはbeginIndexがendIndexより大きい場合。

1 番目の引数に開始インデックス、 2 番目の引数に終了インデックスを指定します。戻り値として取得する部分文字列は開始インデックスから終了インデックス - 1 の文字列です。(終了インデックスの文字は含まれない点に注意してください)。

例えば文字列が "東京都港区赤坂" だった場合、それぞれの文字のインデックスは次のようになります。

String.substringメソッドの使い方(1)

この文字列の中から "港区" という部分文字列を取得する場合には、開始インデックスに 3 、終了インデックスに 5 を指定します。

次のサンプルを見てください。

String msg = "東京都港区赤坂";

System.out.println(msg.substring?(3, 5));  // 港区
System.out.println(msg.substring?(5, 7));  // 赤坂

文字列の中から指定した範囲の部分文字列を取得することができました。

なお開始インデックスをだけを指定して終了インデックスを省略できる同じ名前のメソッドも用意されています。

public String substring?(int beginIndex)

パラメータ:
beginIndex - 開始インデックス(この値を含む)

戻り値:
指定された部分文字列

例外:
IndexOutOfBoundsException - beginIndexが負の値の場合、あるいはこのStringオブジェクトの長さより大きい場合。

1 番目の引数に開始インデックスを指定します。戻り値として取得する部分文字列は開始インデックスから文字列の末尾までの文字列です。

次のサンプルを見てください。

String msg = "東京都港区赤坂";

System.out.println(msg.substring?(3));  // 港区赤坂

開始インデックスで指定した文字から文字列の末尾までの部分文字列を取得することができました。これは次のように記述した場合と同じです。

String msg = "東京都港区赤坂";

System.out.println(msg.substring?(3, msg.length()));  // 港区赤坂
サンプルコード

それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 JSample7-1.java という名前で保存します。

class JSample7_1{
  public static void main(String[] args){
    String msg = "東京都港区赤坂";

    System.out.println(msg.substring?(3, 5));
    System.out.println(msg.substring?(5, 7));
    System.out.println(msg.substring?(3));
  }
}

コンパイルを行います。

javac -encoding UTF-8 JSample7_1.java

その後で、次のように実行してください。

java JSample7_1

String.substring?メソッドの使い方(2)

文字列から範囲を指定して部分文字列を取得することができました。

-- --

Java で開始インデックスと終了インデックスを指定して文字列の中の部分文字列を取得する方法について解説しました。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。