MEDIA

メディア

  1. TOP
  2. メディア
  3. プログラミング
  4. Javaのsubstring完全入門|インデックスで迷わない使い方と実務例

Javaのsubstring完全入門|インデックスで迷わない使い方と実務例

文字列とインデックスの基本イメージ!

substringでつまずく原因の多くは、

文字列とインデックスの理解不足です。

まずはイメージを整理しましょう。

文字列は「配列のように扱う」

Javaの文字列は、以下のように考えます。

"Java"
文字 J a v a
index 0 1 2 3

👉 インデックスは0から始まる

範囲指定は「終わりを含まない」

String s = "Java";
s.substring(1, 3);

結果:

"av"

なぜ?

  • 開始:1(a)
  • 終了:3(含まない)

👉 [開始, 終了) の半開区間

このルールのメリット

  • 長さ = end - begin
  • 範囲をつなげやすい
  • バグが起きにくい

👉 実務でも重要な考え方

 このイメージを理解すると、substringで迷うことがなくなります!

substringとは?できることと使いどころ

Javaで文字列の一部だけを取り出したいとき、最も基本になるのが

String.substring() です。

substringは、元の文字列から指定した範囲を切り出し、新しいStringを返すメソッドです。

ログ解析、ID分解、ファイル名処理など、実務でも非常によく登場します。

substringでできること

  • 固定フォーマット文字列の分解
  • 区切り文字の前後を切り出す
  • 末尾のチェックコード取得
  • 日付・時刻文字列の分割

重要なのは、substringは元のStringを変更しないという点です。

Stringは不変(immutable)オブジェクトなので、結果は必ず新しいStringになります。

String s = "Java";
String sub = s.substring(1,3); // "av"

s 自体は "Java" のまま変わりません。

String型についてはこちらもご参考ください!

substringの基本的な書き方とコード例

substringには 2つの書き方があります。

substring(beginIndex)

開始位置から末尾まで切り出します。

String s = "ID:12345";
String value = s.substring(3); // "12345"
  • 区切りより「後ろ」を取りたいときに便利
  • prefix除去などで頻出

substring(beginIndex, endIndex)

範囲を指定して切り出します。

String s = "abcdef";
String part = s.substring(1,4); // "bcd"

ポイント:

  • endIndexは「文字数」ではない
  • begin == end → 空文字 ""

1文字だけ取り出す場合

char c = s.charAt(Z);
  • 1文字なら charAt が意図的に分かりやすい
  • Stringにしたい場合は String.valueOf(c)

👉 実際に動かして理解するのが最短です

ZeroCodePLUSならすぐに試せます

実務でよく使うsubstring活用パターン

右からn文字を切り出す

String s = "ABCDE1234";
String last4 = s.substring(s.length() - 4); // "1234"

注意点:

  • n <= length() のチェック必須
  • 外部入力では例外対策を忘れない

indexOfと組み合わせる

String s = "key = value";

int idx = s.indexOf("=");

if (idx != -1) {
String value = s.substring(idx + 1);
}

indexOf → substring は鉄板パターンです。

Indexについてはぜひこちらの記事もご参考ください!

ファイル名と拡張子を分ける

String name = "sample.txt";

int dot = name.lastIndexOf(".");

if (dot != -1) {
 String base = name.substring(0, dot);
 String ext = name.substring(dot + 1);
}

例外・null対策と代替手段の選び方

よくある例外

  • StringIndexOutOfBoundsException
  • NullPointerException

安全なチェック条件

if (s != null && begin >= 0 && end <= s.length() && begin <= end) {
 s.substring(begin, end);
}

substring以外の選択肢

目的 おすすめ
区切りで分割 split
複雑な抽出 正規表現
組み立て StringBuilder

substringは

「形式がある程度決まっている文字列」 に向いています。

独学でつまずきやすいポイント

よくある悩みです。

  • インデックスが混乱する
  • 例外が頻発する
  • 実務での使い方が分からない

👉 理解だけでは不十分です

ZeroCodePLUSで理解を実践に変える

  • 環境構築不要
  • ブラウザですぐ実行
  • 手を動かして学べる

👉 substringは実際に試すと一気に理解できます

まとめ

  • 固定フォーマットや境界切り出しに強い
  • indexOfとの組み合わせが実務の定石
  • 例外・null対策まで含めて設計する

String操作は地味ですが、

コードの品質と信頼性を大きく左右する基礎力です。

👉 ZeroCodePLUSなら「理解→実践→定着」を最短で回せます

まずは手を動かしてみましょう!

Join us! 未経験からエンジニアに挑戦できる環境で自分の可能性を信じてみよう 採用ページを見る→

記事監修

ドライブライン編集部

[ この記事をシェアする ]

記事一覧へ戻る