カテゴリ: Javaの文字列操作 更新日: 2025/11/05

Java の「substring()」で文字列を部分的に取り出す使い方を解説

086
Java の「substring()」で文字列を部分的に取り出す使い方を解説

新人と先輩の会話形式で理解しよう

新人

「Java で文字列の一部だけを取り出す方法ってありますか?」

先輩

「Java では、substring() メソッドを使うことで、簡単に文字列の一部分を取得できるよ。」

新人

「具体的にどうやって使うんですか?」

先輩

「それじゃあ、substring() メソッドの基本から見ていこう!」

1. substring() メソッドとは?(基本的な説明)

1. substring() メソッドとは?(基本的な説明)
1. substring() メソッドとは?(基本的な説明)

Java の substring() メソッド は、文字列の一部分を抽出するためのメソッドです。

substring() メソッドの特徴

  • 文字列の一部分を取得できる
  • 開始位置や終了位置を指定して部分文字列を取り出せる
  • 元の文字列は変更されない(新しい文字列として返される)

例えば、「Hello, World!」という文字列から「Hello」だけを取り出すことができます。

2. substring() の基本的な使い方

2. substring() の基本的な使い方
2. substring() の基本的な使い方

まずは、基本的な substring() メソッドの使い方を見てみましょう。

文字列の一部を取り出す基本例


public class SubstringExample {
    public static void main(String[] args) {
        String text = "Hello, World!";
        String subText = text.substring(0, 5);
        System.out.println("取り出した文字列: " + subText);
    }
}

取り出した文字列: Hello

コードの解説

  • String text = "Hello, World!"; … 元の文字列を用意する
  • text.substring(0, 5); … 0 文字目から 5 文字目までの部分文字列を取得する
  • System.out.println(subText); … 取得した文字列を表示

このように、substring() メソッドを使うことで、特定の範囲の文字列を簡単に取り出すことができます。

3. 文字列の一部分を取り出す(開始位置のみ指定)

3. 文字列の一部分を取り出す(開始位置のみ指定)
3. 文字列の一部分を取り出す(開始位置のみ指定)

substring() メソッドでは、開始位置だけを指定して、文字列の一部を取り出すことができます。

開始位置を指定する基本例


public class SubstringStartExample {
    public static void main(String[] args) {
        String text = "Java Programming";
        String subText = text.substring(5);
        System.out.println("取り出した文字列: " + subText);
    }
}

取り出した文字列: Programming

コードの解説

  • text.substring(5); … 5文字目(インデックス5)から最後までを取得する
  • 「Java Programming」という文字列の 5 文字目は「P」なので、「Programming」が抽出される

開始位置のみ指定すると、指定した位置から文字列の最後までを取得できます。

Javaをこれから始める人や、 オブジェクト指向の考え方を基礎から理解したい人には、 定番の入門書がこちらです。

スッキリわかるJava入門 第4版をAmazonで見る

※ Amazon広告リンク

4. 文字列の一部分を取り出す(開始位置と終了位置を指定)

4. 文字列の一部分を取り出す(開始位置と終了位置を指定)
4. 文字列の一部分を取り出す(開始位置と終了位置を指定)

開始位置と終了位置の両方を指定することで、より細かく文字列を取り出せます。

開始位置と終了位置を指定する基本例


public class SubstringRangeExample {
    public static void main(String[] args) {
        String text = "Java Programming";
        String subText = text.substring(5, 16);
        System.out.println("取り出した文字列: " + subText);
    }
}

取り出した文字列: Programming

コードの解説

  • text.substring(5, 16); … 5 文字目から 16 文字目の手前までを取得
  • 「Java Programming」の 5 文字目は「P」、16 文字目の手前は「g」なので、「Programming」が抽出される

開始位置と終了位置の両方を指定することで、特定の範囲の文字列を取得できます。

5. substring() メソッドの使いどころ

5. substring() メソッドの使いどころ
5. substring() メソッドの使いどころ

substring() メソッドは、以下のような場面で役立ちます。

1. ユーザー名やドメインの取得

例えば、メールアドレスからユーザー名だけを取得することができます。


public class EmailSubstringExample {
    public static void main(String[] args) {
        String email = "user@example.com";
        String userName = email.substring(0, email.indexOf("@"));
        System.out.println("ユーザー名: " + userName);
    }
}

ユーザー名: user

2. 特定のデータを取り出す

例えば、日付文字列「2025-03-20」から年だけを取得できます。


public class DateSubstringExample {
    public static void main(String[] args) {
        String date = "2025-03-20";
        String year = date.substring(0, 4);
        System.out.println("年: " + year);
    }
}

年: 2025

このように、substring() を使うことで、特定のデータを簡単に取り出すことができます。

6. substring() と length() を組み合わせる応用例

6. substring() と length() を組み合わせる応用例
6. substring() と length() を組み合わせる応用例

substring() メソッドと length() メソッドを組み合わせることで、文字列の最後の数文字だけを取得することができます。

最後の3文字を取得する例


public class SubstringLastExample {
    public static void main(String[] args) {
        String text = "Hello, World!";
        String lastThree = text.substring(text.length() - 3);
        System.out.println("最後の3文字: " + lastThree);
    }
}

最後の3文字: ld!

コードの解説

  • text.length() - 3 … 文字列の長さから 3 を引いた位置から部分文字列を取得
  • 「Hello, World!」の長さは 13 なので、text.substring(10) となり、「ld!」が抽出される

このように substring()length() を組み合わせることで、文字列の最後の一部を取得できます。

7. 文字列を分割する方法(substring() と indexOf() の活用)

7. 文字列を分割する方法(substring() と indexOf() の活用)
7. 文字列を分割する方法(substring() と indexOf() の活用)

indexOf() メソッドと substring() を組み合わせることで、特定の文字を基準に文字列を分割できます。

区切り文字(@)を使ったメールアドレスの分割


public class EmailSplitExample {
    public static void main(String[] args) {
        String email = "user@example.com";
        int atIndex = email.indexOf("@");
        String userName = email.substring(0, atIndex);
        String domain = email.substring(atIndex + 1);

        System.out.println("ユーザー名: " + userName);
        System.out.println("ドメイン: " + domain);
    }
}

ユーザー名: user
ドメイン: example.com

コードの解説

  • email.indexOf("@")@ の位置を取得
  • email.substring(0, atIndex)@ の前の部分を取得(ユーザー名)
  • email.substring(atIndex + 1)@ の後の部分を取得(ドメイン)

このように indexOf() を活用すると、特定の文字を基準に文字列を分割できます。

8. 練習問題:substring() を使ったプログラムを作ろう

8. 練習問題:substring() を使ったプログラムを作ろう
8. 練習問題:substring() を使ったプログラムを作ろう

最後に、substring() メソッドを活用する練習問題をやってみましょう。

問題1: 文字列の最初の3文字を取得

「Java Programming」という文字列の最初の3文字を取得し、表示するプログラムを作成してください。

解答例


public class SubstringPractice1 {
    public static void main(String[] args) {
        String text = "Java Programming";
        String firstThree = text.substring(0, 3);
        System.out.println("最初の3文字: " + firstThree);
    }
}

最初の3文字: Jav

問題2: URL からドメイン名を取得

「https://example.com」という URL から「example.com」だけを取得し、表示するプログラムを作成してください。

解答例


public class SubstringPractice2 {
    public static void main(String[] args) {
        String url = "https://example.com";
        String domain = url.substring(url.indexOf("://") + 3);
        System.out.println("ドメイン名: " + domain);
    }
}

ドメイン名: example.com

これで、substring() の使い方がしっかり理解できましたね!

まとめ

まとめ
まとめ

今回は、Java の substring() メソッドについて、その基本から応用までを体系的に学びました。substring() は、文字列処理の中でも特に使用頻度が高く、Java の初学者にとっても欠かせない基本メソッドのひとつです。文字列から必要な部分だけを取り出すという操作は、プログラム内の多くの場面で登場し、データの抽出や表示の制御、さらにはロジックの分岐にも活用されます。

特に、開始位置のみを指定する使い方や、開始位置と終了位置を両方指定する方法は、実務においても非常に役立ちます。また、substring()indexOf() を組み合わせることで、メールアドレスの分解や、ドメイン名の抽出、日付情報の分割など、より実践的な文字列操作が可能になります。さらに length() メソッドとの組み合わせにより、文字列の末尾から特定の部分を取り出すなど、応用の幅も広がります。

たとえば、以下のように文字列の最後の5文字を抽出するコードも簡単に書けます。


public class SubstringLastFive {
    public static void main(String[] args) {
        String str = "こんにちは、Javaの世界!";
        String lastFive = str.substring(str.length() - 5);
        System.out.println("最後の5文字: " + lastFive);
    }
}

最後の5文字: Javaの世界!

実際の開発現場では、ログの整形、ユーザー名やメールドメインの抽出、APIレスポンスの分解など、substring() の活用シーンは数えきれません。
また、前後の位置を動的に計算することで、さまざまな文字列に柔軟に対応できるという点も、非常に大きな利点です。

今後、正規表現や split() など他の文字列操作と組み合わせることで、さらに複雑な文字列処理も実現できるようになります。そのためにも、まずはこの substring() の仕組みや使い方を確実に理解し、自分のコードで使いこなせるようになることが重要です。

特に、メールアドレスや URL、日付形式の文字列など、よくある入力形式に対して substring() を使って必要な部分を取り出すスキルは、現場のプログラマーにとって非常に役立つ基礎力となるでしょう。繰り返し練習し、どんな文字列でも柔軟に対応できるようにしていきましょう。

先生と生徒の振り返り会話

新人

今日は substring() の基本と応用をしっかり学べた気がします!

先輩

うん、それは良かった!文字列の取り出しはシンプルだけど、非常に大切な操作だからね。

新人

substring(開始位置)substring(開始, 終了) の違いも理解できましたし、indexOf() と組み合わせてメールアドレスを分割するところは面白かったです!

先輩

それが理解できたら、実務でのデータ処理もスムーズに進むようになるよ。応用として、URLからドメインを抜き出したり、最後の数文字を取得する操作も忘れずにね。

新人

はい!まずは練習問題を自分でも改造してみたり、他の文字列で試したりしてみます!

先輩

いい心がけだね。どんどん手を動かして、コードを通じて substring() を体に染み込ませていこう!

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Java の substring() メソッドとは何ですか?どんなときに使いますか?

substring() メソッドは、Java で文字列の一部だけを取り出すためのメソッドです。特定の文字列から必要な部分だけを抽出したいときに使います。たとえば、「Java Programming」という文字列から「Java」や「Programming」などを取り出す場合に便利です。

Java の substring() の開始位置と終了位置の指定方法がよく分かりません。

substring(開始位置, 終了位置) のように使います。開始位置は含まれ、終了位置は含まれません。たとえば、substring(0, 4) は、0文字目から3文字目まで(つまり4文字分)を取り出すことを意味します。
Javaの文字列操作の一覧へ
新着記事
FlutterのMVP・MVVMアーキテクチャの違いと使い分け
FlutterのMVP・MVVMアーキテクチャの違いと使い分けを初心者向けに解説!
オニオンアーキテクチャの基本とFlutterでの適用例
オニオンアーキテクチャの基本とFlutterでの適用例を初心者向けに解説
クリーンアーキテクチャとは?Flutterでの導入メリット
クリーンアーキテクチャとは?Flutterでの導入メリットをやさしく解説
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金まとめ
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金を初心者向けに徹底解説
人気記事
インスタンスタイプの料金比較と最適な選び方(最新2025年版)
AWSのインスタンスタイプの料金比較と最適な選び方【2025年最新版】
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク