Javaコラム Javaエンジニアのためのお役立ちコラム

javaのsubstringとは?基本と応用の利用方法を解説

 
javaのsubstringとは?基本と応用の利用方法を解説

SE
javaのsubstringとは、どのようなことができるのでしょうか?

PM
文字列を切り出し、体裁を整えることができます。

substringとは?

substringは、java.lang.Stringクラスに存在するメソッドの1つです。引数として切り出したい文字のインデックスを指定します。切り出される文字列は指定されたインデックスから始まり、終了インデックスより1文字前、または文字列の最後までを切り出します。インデックスを指定する場合に注意していただきたいのは、1文字目のインデックスが0になるということです。これは配列などと同じ考え方であり、javaでインデックスを利用する場合にはどのクラスでも0始まりとなります。普段認識しているように、1から数えてしまうと求めている文字列を切り出すことができないため、この点に関してはしっかりと把握しておきましょう。インデックスに指定された値が元の文字列の長さを超えていた場合は、IndexOutOfBoundsExceptionが発生します。また、開始インデックスが終了インデックスより大きい場合も同様に、IndexOutOfBoundsExceptionが発生します。

substringの利用方法

substringには、引数を1つだけ指定した場合と、2つ指定する場合で2パターンの利用方法があります。それぞれ、以下のような内容となっています。

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

これは、切り出したい文字の長さによって変更することになります。javaでは、開始インデックス、終了インデックスともに0始まりの値を指定することになります。それでは、それぞれの使い方をご説明していきます。

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

開始インデックスのみを指定する場合のsubstringメソッドは、以下のように記述します。文字列.substring(開始インデックス)開始インデックスのみを指定すると、文字列は開始インデックスから文字列の最後の文字までが切り出されます。例えば、文字列「あいうえおかきくけこ」から「かきくけこ」のみを切り出したい場合は、以下のようにします。

実行結果

開始インデックスのみを指定すると、開始インデックスから最後の文字までが切り出されていることが確認できます。この開始インデックスを文字の長さを超えて指定すると、エラーが発生します。また、開始インデックスに負の値を指定した場合もIndexOutOfBoundsExceptionが発生します。

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

開始インデックス、終了インデックスの両方を指定する場合のsubstringメソッドは、以下のように記述します。文字列.substring(開始インデックス, 終了インデックス)開始インデックス、終了インデックスの両方を指定すると、開始インデックスから終了インデックス-1までの文字列を取得します。ここで注意しなければならないのは、開始インデックスに指定された場所の文字列は切り出された文字列に含まれますが、終了インデックスに指定された文字列は含まれないということです。以下のコードで動きを確認してみましょう。

実行結果

文字列「あいうえおかきくけこ」で、かきくけこを切り出そうとした場合、「こ」のインデックスは9の為、終了インデックスを9と指定してしまいがちです。しかしながら、javaのsubstringでは、終了インデックスに指定された文字は切り出された文字には含まれません。そのため、この場合は10を指定することになります。開始インデックスに負の値を指定した場合や、終了インデックスが開始インデックスより小さな値だった場合、終了インデックスが文字列の長さより大きかった場合にはIndexOutOfBoundsExceptionが発生します。

応用:indexOfと併用する

substringを利用したいけれどインデックスの場所がわからない場合、文字列の長さがわからない場合には、javaでは同じStringクラスに用意されているindexOfを併用すると解決します。例えば、「あいうえお」の中で「え」から先を切り出したい場合は以下のようになります。

実行結果

indexOfは文字列の中から指定された文字列を検索し、先頭を0としてインデックスを返します。そのため、開始インデックスはそのまま利用することが可能です。しかし、javaのsubstringでは、終了インデックスに指定されたインデックスの文字が含まれないため、+1をして1つ分インデックスをずらして指定することになります。また、indexOfは一致する文字列が無かった場合、-1を返します。これを利用することにより、エラーを回避することが可能です。以下のコードで確認してみましょう。

実行結果

このように、substringとindexOfをうまく利用することで、様々なことができるようになります。

SE
javaのsubstringは、実務で大活躍してくれそうですね。

PM
そうですね。覚えておいて損はないので、しっかりとマスターしておきましょう!

substringメソッドの使い方を覚えよう

javaで部分文字列を切り出すsubstringは、頻繁に利用されるメソッドの1つです。文字列操作の基本と言っても過言ではありません。そんなsubstringメソッドの使い方をしっかりと覚えておけば、実務でも活用することが可能です。今回はindexOfを交えた利用方法をご紹介しました。この利用方法を覚えておけば、様々な場面でsubstringを活用していけるでしょう。まずは実際にsubstringを利用したプログラムを作ってみてください。いろいろ工夫して、プログラムを作ってみましょう。


Javaでのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

recommended

Categories

Tags