Java で文字列が特定の接尾辞で終わるかどうかをチェックする方法

JavaJavaBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Java で文字列が特定の接尾辞で終わっているかどうかをチェックする方法を学びます。これは、ファイルタイプの検証や文字列の末尾に基づくデータ解析などのタスクにおける基本的なスキルです。endsWith() メソッドを探索し、その大文字小文字の区別を理解し、より複雑なチェックのために startsWith() と組み合わせる方法を学びます。実践的な例を通じて、Java プログラムでこれらの文字列操作技術を使用する実践的な経験を積むことができます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/StringManipulationGroup(["String Manipulation"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java/StringManipulationGroup -.-> java/strings("Strings") java/SystemandDataProcessingGroup -.-> java/string_methods("String Methods") subgraph Lab Skills java/strings -.-> lab-559982{{"Java で文字列が特定の接尾辞で終わるかどうかをチェックする方法"}} java/string_methods -.-> lab-559982{{"Java で文字列が特定の接尾辞で終わるかどうかをチェックする方法"}} end

endsWith() を使って接尾辞を検証する

このステップでは、Java の endsWith() メソッドを使って、文字列が特定の接尾辞で終わっているかどうかをチェックする方法を探ります。これは、ファイル拡張子の検証、特定のパターンのチェック、または文字列の末尾に基づくデータ処理が必要な場合の一般的なタスクです。

endsWith() メソッドは Java の String クラスの一部です。このメソッドは 1 つの引数を取り、それはチェックしたい接尾辞です。そして、ブール値を返します。文字列が指定された接尾辞で終わっている場合は true、そうでない場合は false を返します。

endsWith() の動作を示すために、簡単な Java プログラムを作成しましょう。

  1. WebIDE エディタで HelloJava.java ファイルを開きます。もし開いていない場合は、左側のファイルエクスプローラーの project フォルダ内にあります。

  2. HelloJava.java の既存のコードを以下のコードに置き換えます。

    public class HelloJava {
        public static void main(String[] args) {
            String fileName = "document.txt";
            boolean endsWithTxt = fileName.endsWith(".txt");
    
            System.out.println("Does '" + fileName + "' end with '.txt'? " + endsWithTxt);
    
            String imageUrl = "photo.jpg";
            boolean endsWithJpg = imageUrl.endsWith(".jpg");
    
            System.out.println("Does '" + imageUrl + "' end with '.jpg'? " + endsWithJpg);
    
            String documentName = "report.pdf";
            boolean endsWithDoc = documentName.endsWith(".doc");
    
            System.out.println("Does '" + documentName + "' end with '.doc'? " + endsWithDoc);
        }
    }

    このコードでは:

    • fileNameimageUrldocumentName という 3 つの String 変数を宣言しています。
    • 各文字列に対して endsWith() メソッドを使用して、特定の接尾辞(.txt.jpg.doc)で終わっているかどうかをチェックしています。
    • 結果(true または false)はブール型の変数(endsWithTxtendsWithJpgendsWithDoc)に格納されます。
    • 最後に、System.out.println() を使用して結果をコンソールに出力します。
  3. HelloJava.java ファイルを保存します(Ctrl+S または Cmd+S)。

  4. 次に、プログラムをコンパイルしましょう。WebIDE の下部にあるターミナルを開き、~/project ディレクトリにいることを確認します。そして、以下のコマンドを実行します。

    javac HelloJava.java

    エラーがなければ、コンパイルは無事に完了し、~/project ディレクトリに HelloJava.class ファイルが作成されます。

  5. 最後に、java コマンドを使用してコンパイルされたプログラムを実行します。

    java HelloJava

    以下のような出力が表示されるはずです。

    Does 'document.txt' end with '.txt'? true
    Does 'photo.jpg' end with '.jpg'? true
    Does 'report.pdf' end with '.doc'? false

    この出力は、endsWith() のチェック結果を示しており、document.txt.txt で終わり、photo.jpg.jpg で終わり、report.pdf.doc で終わっていないことを確認できます。

あなたは endsWith() メソッドを使って文字列の接尾辞をチェックすることに成功しました。これは Java プログラミングで頻繁に使用する基本的な操作です。

大文字小文字を区別して接尾辞をテストする

前のステップでは、endsWith() メソッドの使い方を学びました。Java の endsWith() メソッドは大文字小文字を区別した比較を行うことを理解することが重要です。つまり、"file.txt"".txt" で終わりますが、".TXT" では終わりません。

この大文字小文字の区別を実際に確認するために、プログラムを修正しましょう。

  1. WebIDE エディタで HelloJava.java ファイルを開きます。

  2. 既存のコードを以下のコードに置き換えます。

    public class HelloJava {
        public static void main(String[] args) {
            String fileName = "document.txt";
    
            // Case-sensitive check
            boolean endsWithLowercaseTxt = fileName.endsWith(".txt");
            System.out.println("Does '" + fileName + "' end with '.txt' (lowercase)? " + endsWithLowercaseTxt);
    
            // Case-sensitive check with uppercase suffix
            boolean endsWithUppercaseTxt = fileName.endsWith(".TXT");
            System.out.println("Does '" + fileName + "' end with '.TXT' (uppercase)? " + endsWithUppercaseTxt);
    
            String anotherFile = "IMAGE.JPG";
    
            // Case-sensitive check with lowercase suffix
            boolean endsWithLowercaseJpg = anotherFile.endsWith(".jpg");
            System.out.println("Does '" + anotherFile + "' end with '.jpg' (lowercase)? " + endsWithLowercaseJpg);
    
            // Case-sensitive check with uppercase suffix
            boolean endsWithUppercaseJpg = anotherFile.endsWith(".JPG");
            System.out.println("Does '" + anotherFile + "' end with '.JPG' (uppercase)? " + endsWithUppercaseJpg);
        }
    }

    この更新されたコードでは、endsWith() メソッドの大文字小文字を区別する性質を強調するために、小文字と大文字の両方の接尾辞で明示的にテストしています。

  3. HelloJava.java ファイルを保存します。

  4. ターミナルで修正したプログラムをコンパイルします。

    javac HelloJava.java
  5. コンパイルしたプログラムを実行します。

    java HelloJava

    以下のような出力が表示されるはずです。

    Does 'document.txt' end with '.txt' (lowercase)? true
    Does 'document.txt' end with '.TXT' (uppercase)? false
    Does 'IMAGE.JPG' end with '.jpg' (lowercase)? false
    Does 'IMAGE.JPG' end with '.JPG' (uppercase)? true

    ご覧の通り、接尾辞の大文字小文字が文字列の大文字小文字と正確に一致しない場合、endsWith() メソッドは false を返します。

大文字小文字を区別しないチェックが必要な場合は、通常、endsWith() を使用する前に文字列と接尾辞の両方を同じ大文字小文字(小文字または大文字)に変換します。この特定のステップではそれについては説明しませんが、覚えておくと便利なテクニックです。

Java で文字列を扱う際には、多くの文字列メソッドがデフォルトで大文字小文字を区別するため、大文字小文字の区別を理解することが重要です。

startsWith() と endsWith() のチェックを組み合わせる

endsWith() で文字列の末尾をチェックすることに加えて、startsWith() メソッドを使って文字列の先頭をチェックすることもできます。このメソッドは endsWith() と同様に動作し、接頭辞を引数として取り、文字列がその接頭辞で始まる場合は true を返し、そうでない場合は false を返します。endsWith() と同様に、startsWith() も大文字小文字を区別します。

startsWith()endsWith() を組み合わせることで、文字列に対してより具体的なチェックを行うことができます。たとえば、ファイル名が "temp_" で始まり、".log" で終わるかどうかをチェックしたい場合があります。

startsWith()endsWith() の両方を使うようにプログラムを更新しましょう。

  1. WebIDE エディタで HelloJava.java ファイルを開きます。

  2. 既存のコードを以下のコードに置き換えます。

    public class HelloJava {
        public static void main(String[] args) {
            String logFileName = "temp_application_error.log";
    
            boolean startsWithTemp = logFileName.startsWith("temp_");
            boolean endsWithLog = logFileName.endsWith(".log");
    
            System.out.println("Does '" + logFileName + "' start with 'temp_'? " + startsWithTemp);
            System.out.println("Does '" + logFileName + "' end with '.log'? " + endsWithLog);
    
            // Combine checks using the logical AND operator (&&)
            boolean isTempLogFile = startsWithTemp && endsWithLog;
            System.out.println("Is '" + logFileName + "' a temporary log file? " + isTempLogFile);
    
            String anotherFile = "data_report.txt";
    
            boolean startsWithData = anotherFile.startsWith("data_");
            boolean endsWithTxt = anotherFile.endsWith(".txt");
    
            System.out.println("Does '" + anotherFile + "' start with 'data_'? " + startsWithData);
            System.out.println("Does '" + anotherFile + "' end with '.txt'? " + endsWithTxt);
    
            boolean isDataTxtFile = startsWithData && endsWithTxt;
            System.out.println("Is '" + anotherFile + "' a data text file? " + isDataTxtFile);
        }
    }

    このコードでは:

    • 文字列の先頭をチェックするために startsWith() メソッドを導入しています。
    • 論理積演算子 (&&) を使って startsWith()endsWith() の結果を組み合わせています。&& 演算子は、両方の条件が true の場合にのみ true を返します。
  3. HelloJava.java ファイルを保存します。

  4. ターミナルでプログラムをコンパイルします。

    javac HelloJava.java
  5. コンパイルしたプログラムを実行します。

    java HelloJava

    以下のような出力が表示されるはずです。

    Does 'temp_application_error.log' start with 'temp_'? true
    Does 'temp_application_error.log' end with '.log'? true
    Is 'temp_application_error.log' a temporary log file? true
    Does 'data_report.txt' start with 'data_'? true
    Does 'data_report.txt' end with '.txt'? true
    Is 'data_report.txt' a data text file? true

    この出力は、論理演算子とともに startsWith()endsWith() を使って、より複雑な文字列チェックを行う方法を示しています。

これで、startsWith()endsWith() の両方を使い、それらを組み合わせて文字列の先頭と末尾を検証する方法を学びました。これらのメソッドは、Java での文字列操作と検証における基本的なツールです。

まとめ

この実験では、Java で endsWith() メソッドを使って文字列が特定の接尾辞で終わるかどうかをチェックする方法を学びました。ファイル拡張子のような接尾辞を検証するための基本的な使い方を調べ、文字列が指定された接尾辞で終わるかどうかを示すブール値を返す仕組みを確認しました。

また、endsWith() メソッドの大文字小文字の区別について調べ、比較する前に文字列と接尾辞を同じ大文字小文字に変換することで、大文字小文字を区別しないチェックを行う方法を学びました。最後に、startsWith()endsWith() メソッドを組み合わせて、文字列が特定の接頭辞で始まり、特定の接尾辞で終わるかどうかをチェックし、これらのメソッドを組み合わせてより複雑な文字列検証を行う方法を実証しました。