スポンサーリンク
Java

【Java】文字を切り出す substringについて

Java

substringメソッドを使用して

対象文字列から特定の部分を切り出す方法について解説します。

substringについて

substringとは

Stringクラスのメソッドで

引数に切り出したい文字のインデックスを指定します。

切り出される文字列は引数で

指定されたインデックスから終了インデックスより一文字前

切り出す場合と、指定されたインデックスから

文字列の最後までを切り出す方法があります。

インデックスに指定された値が切り出し対象の文字列の長さを超えていた場合、

「IndexOutOfBoundsException」が発生します。

substringの使用方法

書き方は以下の2つがあります。

  1. 開始インデックスと終了インデックスを指定する
  2. 開始インデックスのみを指定する

切り出したい文字列の長さによって使い分けましょう。

以下で詳しく説明します。

開始インデックスと終了インデックスを指定する場合

開始インデックス、終了インデックスを指定する場合は

以下のように記述します。

切り出したい文字列.substring(開始インデックス, 終了インデックス)

文字の取得は開始インデックスの対象文字から、

終了インデックスは-1までの文字を切り出します。

開始は指定した文字列終了は指定した文字の一文字手前まで

こちらを踏まえて以下のコードで確認していきましょう。

public class Main {
    public static void main (String[] args) {
        String str = "1234567890";
        // "12345"を切り出す
        System.out.println(str.substring(1, 6));
        // "67890"を切り出す
        System.out.println(str.substring(5, 10));
    }
}
■実行結果
12345
67890

ここで注意してもらいたいのが、

「1234567890」は10文字でlengthとしては9となり

終了インデックスも「9」を指定しそうになりますが、

指定された文字は切り出された文字には含まれないので

この場合「10」を指定しなければなりません。

開始インデックスのみを指定する

開始インデックスのみ指定する場合の記載方法は以下の通りです。

切り出したい文字列.substring(開始インデックス)

開始インデックスから最後の文字まで切り出します。

public class Main {
    public static void main (String[] args) {
        String str = "1234567890";

        // "67890"を切り出す
        System.out.println(str.substring(5));
    }
}
■実行結果
67890