TechReach

Javaのsubstringとは?できることや記述例、注意点などをご紹介

文字列操作は、プログラミングで避けて通れない重要なスキルです。

なかでも、Javaのsubstringメソッドは重要な役割を果たします。

文字列の一部を抽出する機能の基本的な使い方から応用テクニック、注意点まで詳しく解説します。

文字列操作の幅を広げたい開発者の方々に、ぜひ参考にしていただきたい内容です。substringの機能を理解し、効率的な文字列処理を実現しましょう。

自分のスキル年収どのくらい? /
予定年収を診断してみる

Javaのsubstringとは?

Javaのsubstringは、Stringクラスのメソッドで、文字列から特定の部分を抜き出すために使います。substringメソッドを使うと、元の文字列から指定した範囲の文字列を取り出せます。

substringは文字列操作で重要な役割を果たします。例えば、長い文章から必要な部分だけを取り出したり、特定の文字列パターンを抽出したりする際に活用できます。

Javaのsubstringでできることや特長

substringメソッドには、いくつかの特長があります。

第一に、部分文字列の抽出が簡単におこなえます。開始位置と終了位置を指定するだけで、必要な部分を取り出せます。

また、substringは非破壊的操作です。つまり、元の文字列を変更せずに新しい文字列を生成します。元のデータを変更せずに、必要な部分だけを取り出せます。

インデックスとの関係性について

Javaの文字列インデックスは0から始まります。

つまり、文字列の最初の文字が0番目、次の文字が1番目のように数えていくことを意味します。

substringメソッドでは、開始インデックスと終了インデックスを指定します。開始インデックスは結果に含まれますが、終了インデックスは含まれません。例えば、substring(2, 5)とした場合、2番目から4番目までの文字を抽出します。

substringの記述例

Javaのsubstringメソッドは、文字列から一部を抜き出すために使われます。具体的な記述例を見ていきましょう。

文字列を範囲指定で抜き出す

範囲を指定して文字列を抜き出すには、substring(int beginIndex, int endIndex)を使います。

※beginIndexは抜き出し開始位置、endIndexは抜き出し終了位置の直後を指します。

String str = “Hello, World!”;

String result = str.substring(7, 12);

上記の場合、resultには“World”が格納されます。7番目の文字「W」から始まり、12番目の文字「!」の直前で終わる範囲を抜き出しています。

文字列を先頭から抜き出す

例えば、文字列“TechReach”から“Tech”を抜き出す場合、次のように記述します。

String str = “TechReach”;

String result = str.substring(0, 4);

上記のコードでは、0番目の文字「T」から始まり、4番目の文字「R」の直前で終わる範囲を抜き出しています。

文字列の後ろから抜き出す

文字列の後ろから特定の文字数を抜き出すには、length()メソッドとsubstringを組み合わせます。

String str = “Programming”;

String result = str.substring(str.length() – 4);

上記のresultには“ming”が格納されます。文字列の長さから4を引いた位置から、文字列の最後までを抜き出しています。

※endIndexを指定しない形式では、文字列の最後までが抽出されます。

indexOfと併用する場合

substringメソッドとindexOfメソッドを組み合わせると、 特定の文字や文字列の位置を基準にして、必要な部分を切り出せます。 ログ解析やデータ処理など、多くの場面で役立つテクニックです。

例えば、URLからドメイン名を抽出する場合を考えてみましょう。

まず、indexOfメソッドを使って「://」の位置を特定し、「://」の後ろから次に「/」が現れる位置までの部分をsubstringで切り出します。

具体的には以下のような手順になります。

  • ・① indexOfで「://」の位置を見つける
  • ・② ①の位置に3を足して、「://」部分の後ろの位置を得る
  • ・③ ②の位置からindexOfで次の「/」を探す
  • ・④ substringを使って、②と③で得た位置の間の文字列を抽出する

上記の方法を使えば、URL「https://www.example.com/page」からドメイン名「www.example.com」を取り出せます。

Javaのsubstringの注意点とは?

Javaのsubstringメソッドを使用する際には、いくつかの注意点があります。

インデックスの範囲

まず、IndexOutOfBoundsExceptionに注意が必要です。左記エラーは、指定した範囲が文字列の長さを超えている場合に発生します。

例えば、5文字の文字列から6文字目以降を取り出そうとするとエラーになります。

エラーを回避するには、文字列の長さを事前にチェックするか、try-catchブロックを使用して例外処理をおこなってください。

メモリ使用量

大量のsubstring操作をおこなうと、メモリ使用量が増加し、アプリケーションの動作が遅くなる可能性もあります。

特に、ループ内でsubstringを多用する場合は、StringBuilderなどのより効率的な文字列操作クラスの使用を検討するとよいでしょう。

Unicode補助文字

substringメソッドは文字単位ではなく、UTF-16コードユニット単位で動作します。そのため、16bitで表現できない絵文字やJIS第三水準漢字などの一部の文字を含む処理では、配慮が必要なケースもあります。

対処するには、文字列をコードポイント単位で処理するString.offsetByCodePoints()などと組み合わせた処理を検討してください。

まとめ

Javaのsubstringは文字列操作に欠かせないメソッドです。

インデックスベースの抽出や他メソッドとの組み合わせで多様な処理が可能ですが、エラー回避や効率性にも注意が必要です。

substringの特性を理解し、効果的な文字列処理を実現してください。

フリーランスの案件をお探しの方はTechReachにご相談ください。

TechReachを運営する株式会社アールストーンはIT・Web業界特化で15年以上の実績がございます。

そのため、高単価・高品質な数多くの案件紹介が可能です。

また一人のコンサルタントが企業と求職者様の担当を行う「両面型エージェント」を採用しているため、あなたの希望に合う案件がきっと見つかるはずです。

TechReachを活用して、理想の案件を見つけましょう!

関連記事

カテゴリ