はじめに
この実験では、Java で文字列が特定の接尾辞で終わっているかどうかをチェックする方法を学びます。これは、ファイルタイプの検証や文字列の末尾に基づくデータ解析などのタスクにおける基本的なスキルです。endsWith() メソッドを探索し、その大文字小文字の区別を理解し、より複雑なチェックのために startsWith() と組み合わせる方法を学びます。実践的な例を通じて、Java プログラムでこれらの文字列操作技術を使用する実践的な経験を積むことができます。
endsWith() を使って接尾辞を検証する
このステップでは、Java の endsWith() メソッドを使って、文字列が特定の接尾辞で終わっているかどうかをチェックする方法を探ります。これは、ファイル拡張子の検証、特定のパターンのチェック、または文字列の末尾に基づくデータ処理が必要な場合の一般的なタスクです。
endsWith() メソッドは Java の String クラスの一部です。このメソッドは 1 つの引数を取り、それはチェックしたい接尾辞です。そして、ブール値を返します。文字列が指定された接尾辞で終わっている場合は true、そうでない場合は false を返します。
endsWith() の動作を示すために、簡単な Java プログラムを作成しましょう。
WebIDE エディタで
HelloJava.javaファイルを開きます。もし開いていない場合は、左側のファイルエクスプローラーのprojectフォルダ内にあります。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); } }このコードでは:
fileName、imageUrl、documentNameという 3 つのString変数を宣言しています。- 各文字列に対して
endsWith()メソッドを使用して、特定の接尾辞(.txt、.jpg、.doc)で終わっているかどうかをチェックしています。 - 結果(
trueまたはfalse)はブール型の変数(endsWithTxt、endsWithJpg、endsWithDoc)に格納されます。 - 最後に、
System.out.println()を使用して結果をコンソールに出力します。
HelloJava.javaファイルを保存します(Ctrl+S または Cmd+S)。次に、プログラムをコンパイルしましょう。WebIDE の下部にあるターミナルを開き、
~/projectディレクトリにいることを確認します。そして、以下のコマンドを実行します。javac HelloJava.javaエラーがなければ、コンパイルは無事に完了し、
~/projectディレクトリにHelloJava.classファイルが作成されます。最後に、
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" では終わりません。
この大文字小文字の区別を実際に確認するために、プログラムを修正しましょう。
WebIDE エディタで
HelloJava.javaファイルを開きます。既存のコードを以下のコードに置き換えます。
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()メソッドの大文字小文字を区別する性質を強調するために、小文字と大文字の両方の接尾辞で明示的にテストしています。HelloJava.javaファイルを保存します。ターミナルで修正したプログラムをコンパイルします。
javac HelloJava.javaコンパイルしたプログラムを実行します。
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() の両方を使うようにプログラムを更新しましょう。
WebIDE エディタで
HelloJava.javaファイルを開きます。既存のコードを以下のコードに置き換えます。
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を返します。
- 文字列の先頭をチェックするために
HelloJava.javaファイルを保存します。ターミナルでプログラムをコンパイルします。
javac HelloJava.javaコンパイルしたプログラムを実行します。
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() メソッドを組み合わせて、文字列が特定の接頭辞で始まり、特定の接尾辞で終わるかどうかをチェックし、これらのメソッドを組み合わせてより複雑な文字列検証を行う方法を実証しました。



