支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡


はじめに

この記事ではJava初学者のためにJavaのsubstringの使い方について解説していきます。substringは任意の長さ分を切り出すことができるメソッドで、後ろから、先頭から、指定文字を切り出す方法から、マイナスを使用した場合などについてコードを用いて解説していきます。

Javaのsubstringメソッドとは

Javaの資格勉強をしていると、文字列に関するメソッドはlengthやindexOf、charAt、trim、replaceなどたくさん出てきます。その中でも今回はsubstringメソッドについて触れていきます。substringは指定位置から始まる文字列を任意の長さだけ切り出すことができるメソッドです。引数を1つ指定した場合はその第1引数よりも後ろの文字列が返されます。第2引数まで指定した場合は第1引数で指定した文字列の後ろから第2引数までの間の文字列が返されます。substringメソッドの基本的な使い方はこのようになります。

String型の変数.substring(開始位置, 終了位置)

では以下より文字列の切り出し方についてコードを利用して解説していきます。

substringで先頭から文字を切り出す使い方

先頭から文字を切り出す場合は第1引数のみ使用し、その値は「0」にします。

String型の変数.substring(0)

以下、先頭から文字を切り出すサンプルコードです。


public class Main {
    public static void main(String[] args) {
    	String str = "Hello World!!";
        System.out.println(str.substring(0));
    }
}

実行結果

Hello World!!

substringメソッドは文字と文字の間の区切りを数えます。サンプルコードの場合、「Hello World!!」の「H」の前から0ではじまり「H」の後ろが1となります。そのため、第1引数の値を「0」にすると、先頭の文字から切り出すことができます。

substringで後ろから文字を切り出す使い方

後ろから文字を切り出す場合、lengthを利用することで可能になります。

String型の変数.substring(String型の変数.length() - 文字数)

以下、サンプルコードです。


public class Main {
    public static void main(String[] args) {
    	String str = "Hello World!!";
        System.out.println(str.substring(str.length() - 7));
    }
}

実行結果

World!!

後ろから文字列を切り出す場合はlengthを用いて、切り出す分の値を引きます。数え方は先頭から文字を切り出す時と同じで、「0」から始まります。

substringで指定文字を切り出す使い方

指定した文字数分を切り出す場合はsubstringメソッドの引数に開始位置と終了位置を指定します。第1引数に4、第2引数に8を指定する場合は以下のようになります。


public class Main {
    public static void main(String[] args) {
    	String str = "Hello World!!";
        System.out.println(str.substring(4, 8));
    }
}

実行結果

o Wo

スペースも1文字分として認識されるので、引数に値を指定する場合はスペースも考慮して指定する必要があります。

1文字だけ切り出す使い方

substringメソッドは任意の長さを指定して文字列を切り出すことができますが、1文字だけ切り出す場合はsubstringメソッドではなく、charAtメソッドを使用します。このcharAtメソッドの使い方はsubstringメソッドと基本的には同じです。以下のサンプルコードを見てください。


public class Main {
    public static void main(String[] args) {
    	String str = "Hello World!!";
        System.out.println(str.charAt(6));
    }
}

実行結果

W

substringメソッドで第1引数のみ値を指定したら、指定位置より後ろの文字列が切り出されますが、charAtメソッドは指定した1文字のみが切り出されます。

おわりに

ここまでJavaのsubstringメソッドの使い方について説明してきましたがいかがでしたでしょうか。substringメソッドとcharAtメソッドは文字列よりも大きい値を指定したり、「マイナス(ー)」の値を指定すると、StringIndexOutOfBoundsExceptionという例外を返すので、範囲内の文字列の値を指定するように注意してください。Javaのsubstringメソッドを理解してJavaの試験対策や実務に活かしましょう!