Javaで文字列の切り出しを行う:substring()

Java で指定した範囲の文字列を切り出すときは、String クラスの substring() メソッドを使用します。ここでは、substring() の使い方について説明します。

substring() の使い方

substring() の構文は以下の通りです。

対象の文字列.substring(開始位置, 終了位置)

substring() は第1引数に切り出しを始める開始位置を指定し、第2引数には切り出しの終了位置を指定します。また、戻り値として開始位置から終了位置-1の範囲にある文字列を返します。開始位置や終了位置は 0 から数えられます。

もし文字列の範囲を超えた値を引数に指定した場合や、マイナスの値を指定した場合はエラーとなるので注意してください。

指定した範囲の文字列を切り出す

以下は、指定した範囲の文字列を切り出すサンプルです。

String str1 = "abcdefghijk";
String str2 = str1.substring(3, 6);
System.out.println(str2); // def

上のプログラムでは、0から数えて3番目から5番目の文字列を切り出すので、「def」が表示されます。

指定位置から末尾まで文字列を切り出す

指定した位置から末尾までの文字列を切り出したいときは、 substring() の第1引数にのみ値を指定します。

対象の文字列.substring(開始位置)

以下は、指定した位置から末尾まで文字列を切り出すサンプルです。

String str1 = "abcdefghijk";
String str2 = str1.substring(3);
System.out.println(str2); // defghijk

上のプログラムでは、0から数えて3番目から末尾まで文字列を切り出すので、「defghijk」が表示されます。

後方から指定文字数分の文字列を切り出す

後方から指定した文字数分だけ切り出す場合は String.length() を使えば実現できます。

対象文字列.substring(対象文字列.length() - 文字数)

以下は、後方から指定した文字数分だけ切り出すサンプルです。

String str1 = "abcdefghijk";
String str2 = str1.substring(str1.length() - 3);
System.out.println(str2); // ijk

上のプログラムでは、後方から3文字分の文字列を切り出すので、「ijk」が表示されます。