カテゴリ: Java 更新日: 2026/08/01

JavaのStringクラスとendsWithメソッドを完全解説!初心者でも理解できる文字列の末尾チェック

endsWithメソッド
endsWithメソッド

先生と生徒の会話形式で理解しよう

生徒

「Javaで文字列が特定の文字列で終わっているかどうかを確認する方法はありますか?」

先生

「はい、JavaではStringクラスのendsWithメソッドを使うと、特定の文字列で終わっているかを簡単に確認できます。」

生徒

「それは便利ですね!どのように使うんですか?」

先生

「では、基本的な使い方を詳しく見ていきましょう!」

1. JavaのStringクラスとは?文字列操作の基本を学ぼう

「1. JavaのStringクラスとは?文字列操作の基本を学ぼう」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

1. JavaのStringクラスとは?文字列操作の基本を学ぼう
1. JavaのStringクラスとは?文字列操作の基本を学ぼう

JavaのStringクラスは、文字の並び(テキストデータ)を扱うための専用ツールのようなものです。プログラミングにおいて、ユーザーの名前を表示したり、ファイル名をチェックしたりと、文字列を使わないシーンはほとんどありません。Java初心者の方がまず最初にマスターすべき、非常に重要なクラスです。

このクラスには、文字列を切り取ったり、長さを調べたりするための便利な「メソッド(機能)」がたくさん詰まっています。今回紹介する末尾チェックも、その強力な機能のひとつです。

大きな特徴として、Stringクラスは不変(immutable)という性質を持っています。これは「一度作った文字列の中身は絶対に変わらない」というルールです。例えば、文字列の一部を書き換える操作をしても、元の文字列が変化するのではなく、新しい文字列が別に作成されます。この仕組みによって、Javaのプログラムは安全かつ高速に動作するよう設計されています。

プログラミング未経験の方へ: 変数を「箱」に例えると、String型の箱に入れた文字列は、中身を書き換えるのではなく、新しい内容の紙が入った「別の箱」にすり替えるイメージです。

Javaでの文字列の作り方(基本サンプル)

まずは、最もシンプルな文字列の作成方法を見てみましょう。ダブルクォーテーションで囲むだけで、簡単に文字列を扱うことができます。


public class StringBasicExample {
    public static void main(String[] args) {
        // 文字列型の変数「message」を作成して挨拶を代入
        String message = "こんにちは、Javaの世界へ!";
        
        // 文字列の長さを表示するメソッド(length)を使ってみる
        int length = message.length();
        
        System.out.println("中身: " + message);
        System.out.println("文字数: " + length);
    }
}

このように、Stringクラスを使いこなせるようになると、プログラムで自由自在にテキストを操れるようになります。次は、特定の文字で終わっているかを判定する具体的な手法に進みましょう。

2. endsWithメソッドの使い方:文字列の末尾を判定する

2. endsWithメソッドの使い方:文字列の末尾を判定する
2. endsWithメソッドの使い方:文字列の末尾を判定する

Javaで「特定の文字で終わっているか」をチェックしたいときに便利なのが、endsWithメソッドです。例えば、ファイル名が「.jpg」で終わっているか、URLが「/」で終わっているかなど、実務でも非常によく使われる重要な機能です。

endsWithメソッドの基本構文

このメソッドは、調べたい文字列に対して以下のように記述します。結果は「はい(true)」か「いいえ(false)」の2択(boolean型)で返ってきます。

  • public boolean endsWith(String suffix)

引数のsuffix(サフィックス)には、確認したい末尾の文字列を指定します。

【初心者向け】具体的なサンプルプログラム

プログラミングが初めての方でも分かりやすいよう、身近な「ファイル形式のチェック」を例にコードを見てみましょう。大文字と小文字は区別されるという点に注目してください。


public class EndsWithExample {
    public static void main(String[] args) {
        // 1. チェック対象の文字列を準備
        String fileName = "my-photo.png";

        // 2. 末尾が ".png" かどうかを判定
        boolean isPng = fileName.endsWith(".png");
        
        // 3. 結果を表示
        System.out.println("このファイルはPNG画像ですか?: " + isPng);

        // 注意点:大文字と小文字は区別されます
        boolean isUpperPng = fileName.endsWith(".PNG");
        System.out.println("大文字の .PNG で判定した場合: " + isUpperPng);
    }
}

実行結果


このファイルはPNG画像ですか?: true
大文字の .PNG で判定した場合: false

プログラミング初心者への解説

このプログラムでは、まずfileNameという箱に「my-photo.png」という名前を入れました。次にendsWith(".png")を使うことで、コンピュータに「この名前の最後は .png で合ってる?」と聞きいています。

もしユーザーがアップロードしたファイルが画像かどうかを自動判別したい場合、この1行を書くだけで簡単にシステムを作ることができます。非常にシンプルですが、入力チェックやデータ整理には欠かせないメソッドです。

このように、endsWithメソッドを活用することで、複雑な条件分岐を書かなくてもスマートに文字列の末尾を確認できるようになります。

3. endsWithメソッドを使うときの注意点とエラー回避のコツ

3. endsWithメソッドを使うときの注意点とエラー回避のコツ
3. endsWithメソッドを使うときの注意点とエラー回避のコツ

JavaのendsWithメソッドは非常に便利ですが、プログラミング初心者の方がつい忘れがちな「落とし穴」がいくつかあります。エラー(例外)でプログラムが止まってしまわないよう、以下の3つのポイントをしっかり押さえておきましょう。

  • NullPointerException(ヌルポ)に注意: 比較する文字(引数)にnull(空っぽの状態)を渡すと、プログラムがエラーで強制終了してしまいます。
  • 大文字と小文字は「別物」: コンピュータは .JPG.jpg を違う文字として判断します。拡張子の判定などでは特に注意が必要です。
  • 空文字の判定: 実は、どんな文字列に対しても endsWith("")(空の文字)を判定させると、結果は常に true になります。

これらを考慮して、初心者の方でも安心して使える「安全な書き方」のサンプルプログラムを見てみましょう。


public class SafeEndsWithExample {
    public static void main(String[] args) {
        // 判定したい元の文字列
        String fileName = "photo.JPG";
        // チェックしたい後ろの文字
        String suffix = ".jpg";

        // 1. suffixがnullでないことを確認
        // 2. 大文字小文字を区別せずに判定するために、一度小文字(toLowerCase)に揃える
        if (suffix != null && fileName.toLowerCase().endsWith(suffix.toLowerCase())) {
            System.out.println("指定した拡張子(.jpg)で終わっています。");
        } else {
            System.out.println("一致しないか、またはデータが空です。");
        }
    }
}

このプログラムのポイントは、toLowerCase() を使って「大文字小文字の差」を無視できるように工夫している点です。これにより、ユーザーが .JPG と入力しても .jpg と入力しても、正しく判定できるようになります。

また、if 文の中で suffix != null を先にチェックすることで、万が一中身が空っぽでもエラーを出さずに安全に処理をスキップする「ガード句」のような役割を果たしています。


指定した拡張子(.jpg)で終わっています。

4. endsWithメソッドの具体的な活用シーンと実践例

「4. endsWithメソッドの具体的な活用シーンと実践例」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

4. endsWithメソッドの具体的な活用シーンと実践例
4. endsWithメソッドの具体的な活用シーンと実践例

JavaのendsWithメソッドは、単に「末尾が一致するか」を調べるだけでなく、日常的なプログラミングの現場で非常に多く活用されています。プログラミング初心者の方が最初に出会う「条件分岐(if文)」との相性も抜群です。

ファイル形式の自動判定

最も一般的な使い道は、拡張子(ファイル名の末尾に付く .jpg や .pdf など)のチェックです。例えば、大量のファイルの中から「テキストファイルだけを見つけて処理したい」という場合に、このメソッドが活躍します。


public class FileCheckExample {
    public static void main(String[] args) {
        // 判定したいファイル名のリスト(配列)
        String[] files = { "document.pdf", "image.jpg", "notes.txt", "report.docx" };

        System.out.println("--- テキストファイルの抽出を開始します ---");

        for (String file : files) {
            // もしファイル名の末尾が「.txt」で終わっていたら
            if (file.endsWith(".txt")) {
                System.out.println("【対象】" + file + " はテキストファイルです。");
            }
        }
    }
}

このプログラムを実行すると、コンソールには次のように表示されます。


--- テキストファイルの抽出を開始します ---
【対象】notes.txt はテキストファイルです。

プログラムの解説:なぜこの書き方が重要なのか

上記のコードでは、forという仕組みを使って複数のファイル名を一つずつ順番にチェックしています。file.endsWith(".txt")の部分が「この文字で終わっているかな?」と一瞬で判断してくれるため、大量のデータがあっても人間が手作業で探す必要はありません。

また、このメソッドは大文字と小文字を区別するという点に注意しましょう。例えば「.TXT」で終わるファイルを判定したい場合は、あらかじめ文字を小文字に変換しておくか、両方のパターンをチェックする工夫をすることで、より精度の高いプログラムになります。

このように、endsWithメソッドをマスターすると、特定のデータだけを効率よく抽出する「フィルタリング機能」が簡単に実装できるようになります。

5. よくある質問と回答(FAQ)

5. よくある質問と回答(FAQ)
5. よくある質問と回答(FAQ)

Q: endsWithメソッドは、文字列のどこかに含まれている「部分一致」にも対応していますか?

A: いいえ、endsWithは「末尾が指定した文字で終わっているか」だけを判定します。

Javaで文字列の中に特定の文字が含まれているか(部分一致)を調べたい場合は、containsメソッドを使うのが一般的です。 例えば、「こんにちは」という文章の中に「にち」が入っているか探すようなケースですね。

初心者の方でも分かりやすいように、endsWith(末尾一致)とcontains(部分一致)の違いを比較したサンプルコードを見てみましょう。


public class SearchExample {
    public static void main(String[] args) {
        String fileName = "report_2026.pdf";

        // 1. endsWith の場合(末尾が .pdf かどうかを確認)
        boolean isPdf = fileName.endsWith(".pdf");
        System.out.println("PDFファイルですか? : " + isPdf); // 結果: true

        // 2. contains の場合(どこかに 2026 が含まれているか確認)
        boolean hasYear = fileName.contains("2026");
        System.out.println("名前に 2026 が含まれますか? : " + hasYear); // 結果: true
    }
}

このように、やりたいことに合わせてメソッドを使い分けるのがJavaプログラミングのコツです。 「最後だけチェックしたいなら endsWith」、「場所を問わず含まれているか知りたいなら contains」と覚えておきましょう。

6. まとめ

6. まとめ
6. まとめ

本記事では、JavaのStringクラスに含まれるendsWithメソッドについて詳しく学びました。このメソッドは、文字列が特定の文字列で終わっているかを確認するための便利なツールです。主な用途として、ファイルの拡張子の確認やURLのドメインの判定などが挙げられます。

endsWithメソッドはtruefalseを返すシンプルなメソッドですが、プログラムの中で非常に重要な役割を果たします。また、nullチェックや大文字小文字の区別など、安全に使用するための注意点も押さえることができました。

以下に、実践的な使用例を示します。


public class PracticalEndsWithExample {
    public static void main(String[] args) {
        String[] emails = { "user@example.com", "admin@domain.org", "support@example.com" };

        for (String email : emails) {
            if (email.endsWith("@example.com")) {
                System.out.println(email + " はexample.comのメールアドレスです。");
            } else {
                System.out.println(email + " は異なるドメインのメールアドレスです。");
            }
        }
    }
}

このプログラムを実行すると、次のような結果が得られます。


user@example.com はexample.comのメールアドレスです。
admin@domain.org は異なるドメインのメールアドレスです。
support@example.com はexample.comのメールアドレスです。

このようにendsWithメソッドを活用することで、文字列の末尾チェックを簡単に行うことができます。この記事で学んだ知識を基に、自分のプログラムに応用してみてください。

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

生徒

endsWithメソッドでファイルやURLを簡単にチェックできるのが分かりました!すごく便利ですね。」

先生

「その通りです。特に、条件分岐を使うことで、多くの文字列操作を効率的に処理できますよ。」

生徒

「これから、ファイル管理やログのチェックに使ってみたいと思います!」

先生

「ぜひ試してみてください。他のメソッドと組み合わせるとさらに柔軟な処理が可能になりますよ。」

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

「この記事を読んだ人からの質問」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

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

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

JavaのStringクラスにあるendsWithメソッドとはどのような機能を持つメソッドですか?初心者にも分かりやすく教えてください。

JavaのStringクラスに用意されているendsWithメソッドは、ある文字列が指定した特定の文字列(接尾辞)で終わっているかどうかを判定するための便利なメソッドです。プログラミング初心者の方でも理解しやすいように説明すると、例えばファイル名の末尾が「.jpg」や「.pdf」といった特定の拡張子で終わっているかをチェックしたい時に非常によく使われます。このメソッドはJava標準の文字列操作機能として非常に一般的で、条件分岐などと組み合わせて頻繁に利用されます。

endsWithメソッドの戻り値の型は何ですか?どのような結果が返ってくるのか詳しく知りたいです。

endsWithメソッドの戻り値は「boolean(ブール型)」です。これは、判定結果が正しい場合には「true(真)」を返し、条件に一致しない場合には「false(偽)」を返すということを意味します。例えば、文字列の末尾が指定した文字と完全に一致していればtrueが返却され、一文字でも異なればfalseが返却されます。この真偽値の結果を利用することで、if文などの制御構文でプログラムの処理を分けることが可能になります。
カテゴリの一覧へ
新着記事
New1
JSP
JSPで文字を出力する方法まとめ!HTMLとの違いと<%= %>の使い方
更新記事
New2
Servlet
JavaのHttpServletRequestクラスとgetHeaderメソッドを初心者向けに徹底解説!
更新記事
New3
Thymeleaf
Thymeleafのth:inlineを完全ガイド!初心者でもわかるインライン式の使い方
更新記事
New4
Spring
Javaの@RequestParamアノテーションの使い方を徹底解説!初心者でもわかるリクエストパラメータの基本と応用
更新記事
人気記事
No.1
Java&Spring記事人気No1
Java
JavaのDateTimeFormatterの使い方を完全ガイド!初心者でもわかる日付フォーマットの基本
No.2
Java&Spring記事人気No2
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.3
Java&Spring記事人気No3
Java
Javaのクラスとインスタンス化、コンストラクタの使い方完全ガイド!初心者でもわかるオブジェクト指向の基礎
No.4
Java&Spring記事人気No4
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.5
Java&Spring記事人気No5
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.6
Java&Spring記事人気No6
Java
JavaのIOExceptionクラス徹底解説!初心者向けファイル入出力エラー対策ガイド
No.7
Java&Spring記事人気No7
Thymeleaf
Thymeleafのth:checkedの使い方!チェックボックスON/OFFを動的に制御する方法
No.8
Java&Spring記事人気No8
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門