はじめに
この実験では、Java で文字列が特定の接尾辞で終わっているかどうかをチェックする方法を学びます。これは、ファイルタイプの検証や文字列の末尾に基づくデータ解析などのタスクにおける基本的なスキルです。endsWith()
メソッドを探索し、その大文字小文字の区別を理解し、より複雑なチェックのために startsWith()
と組み合わせる方法を学びます。実践的な例を通じて、Java プログラムでこれらの文字列操作技術を使用する実践的な経験を積むことができます。
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
この実験では、Java で文字列が特定の接尾辞で終わっているかどうかをチェックする方法を学びます。これは、ファイルタイプの検証や文字列の末尾に基づくデータ解析などのタスクにおける基本的なスキルです。endsWith()
メソッドを探索し、その大文字小文字の区別を理解し、より複雑なチェックのために startsWith()
と組み合わせる方法を学びます。実践的な例を通じて、Java プログラムでこれらの文字列操作技術を使用する実践的な経験を積むことができます。
このステップでは、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 で文字列を扱う際には、多くの文字列メソッドがデフォルトで大文字小文字を区別するため、大文字小文字の区別を理解することが重要です。
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()
メソッドを組み合わせて、文字列が特定の接頭辞で始まり、特定の接尾辞で終わるかどうかをチェックし、これらのメソッドを組み合わせてより複雑な文字列検証を行う方法を実証しました。