はじめに
この実験では、Java の startsWith()
メソッドを使用して、文字列が特定の接頭辞で始まるかどうかをチェックする方法を学びます。この実践的な演習では、startsWith()
メソッドの適用方法を案内し、さまざまなケースでの動作をテストし、null や空の接頭辞をどのように扱うかを理解します。この実験の終わりまでに、この基本的な文字列操作技術の使用に習熟するようになります。
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
この実験では、Java の startsWith()
メソッドを使用して、文字列が特定の接頭辞で始まるかどうかをチェックする方法を学びます。この実践的な演習では、startsWith()
メソッドの適用方法を案内し、さまざまなケースでの動作をテストし、null や空の接頭辞をどのように扱うかを理解します。この実験の終わりまでに、この基本的な文字列操作技術の使用に習熟するようになります。
このステップでは、Java の startsWith()
メソッドを使用して、文字列が特定の接頭辞で始まるかどうかをチェックする方法を学びます。これは、テキストの始まりに基づいて処理する必要がある場合に一般的な操作です。
startsWith()
メソッドは Java の String
クラスの一部です。このメソッドは String
型の引数を取り、この引数がチェックしたい接頭辞になります。文字列が指定された接頭辞で始まる場合は true
を返し、そうでない場合は false
を返します。
startsWith()
の使用を練習するために、新しい Java ファイルを作成しましょう。
WebIDE の左側にあるファイルエクスプローラーを開きます。
~/project
ディレクトリ内で右クリックし、「新しいファイル」を選択します。
新しいファイルの名前を PrefixChecker.java
にします。
PrefixChecker.java
をエディターで開き、以下のコードを貼り付けます。
public class PrefixChecker {
public static void main(String[] args) {
String text = "Hello, Java!";
String prefix = "Hello";
boolean startsWithPrefix = text.startsWith(prefix);
System.out.println("Does the text start with '" + prefix + "'? " + startsWithPrefix);
}
}
このコードでは:
String
型の変数 text
を宣言し、"Hello, Java!" で初期化しています。String
型の変数 prefix
を宣言し、"Hello" で初期化しています。text
文字列に対して startsWith()
メソッドを呼び出し、prefix
を引数として渡しています。結果(true
または false
)は boolean
型の変数 startsWithPrefix
に格納されます。ファイルを保存します(Ctrl+S または Cmd+S)。
次に、このプログラムをコンパイルして実行しましょう。WebIDE の下部にあるターミナルを開きます。~/project
ディレクトリにいることを確認してください。
javac
コマンドを使用して Java ファイルをコンパイルします。
javac PrefixChecker.java
エラーがなければ、このコマンドにより ~/project
ディレクトリに PrefixChecker.class
ファイルが作成されます。
java
コマンドを使用してコンパイルされたプログラムを実行します。
java PrefixChecker
以下の出力が表示されるはずです。
Does the text start with 'Hello'? true
この出力は、文字列 "Hello, Java!" が実際に接頭辞 "Hello" で始まっていることを確認しています。
前のステップでは、startsWith()
を使用して接頭辞をチェックすることに成功しました。次に、startsWith()
が大文字と小文字の異なるケースをどのように扱うかを調べてみましょう。
デフォルトでは、startsWith()
メソッドは大文字小文字を区別します。つまり、"Hello" は "hello" や "HELLO" とは異なるとみなされます。これを実際に確認するために、PrefixChecker.java
ファイルを修正しましょう。
WebIDE のエディターで PrefixChecker.java
ファイルを開きます。
main
メソッドを修正して、大文字小文字の異なるケースをチェックするようにします。既存の main
メソッドを以下のコードに置き換えます。
public class PrefixChecker {
public static void main(String[] args) {
String text = "Hello, Java!";
String prefix1 = "Hello";
String prefix2 = "hello";
String prefix3 = "HELLO";
boolean startsWithPrefix1 = text.startsWith(prefix1);
boolean startsWithPrefix2 = text.startsWith(prefix2);
boolean startsWithPrefix3 = text.startsWith(prefix3);
System.out.println("Does the text start with '" + prefix1 + "'? " + startsWithPrefix1);
System.out.println("Does the text start with '" + prefix2 + "'? " + startsWithPrefix2);
System.out.println("Does the text start with '" + prefix3 + "'? " + startsWithPrefix3);
}
}
この更新されたコードでは、text
文字列が "Hello"、"hello"、"HELLO" で始まるかどうかをチェックしています。
ファイルを保存します(Ctrl+S または Cmd+S)。
ターミナルを開き、~/project
ディレクトリにいることを確認します。
修正した Java ファイルをコンパイルします。
javac PrefixChecker.java
コンパイルしたプログラムを実行します。
java PrefixChecker
以下の出力が表示されるはずです。
Does the text start with 'Hello'? true
Does the text start with 'hello'? false
Does the text start with 'HELLO'? false
この出力から明らかなように、startsWith()
は元の文字列の大文字小文字と一致する "Hello" の接頭辞に対してのみ true
を返し、"hello" と "HELLO" に対しては false
を返しました。これは、startsWith()
が大文字小文字を区別することを示しています。
大文字小文字を区別しない接頭辞チェックを行う必要がある場合は、通常、startsWith()
を使用する前に元の文字列と接頭辞の両方を同じケース(小文字または大文字)に変換します。たとえば、text.toLowerCase().startsWith(prefix.toLowerCase())
のように使用できます。ここでは実装しませんが、覚えておくと便利なテクニックです。
このステップでは、接頭辞が null
または空文字列 (""
) の場合に startsWith()
メソッドがどのように動作するかを調べます。これらのエッジケースを理解することは、堅牢なコードを書くために重要です。
WebIDE のエディターで PrefixChecker.java
ファイルを開きます。
main
メソッドを修正して、null
の接頭辞と空文字列の接頭辞でテストするようにします。既存の main
メソッドを以下のコードに置き換えます。
public class PrefixChecker {
public static void main(String[] args) {
String text = "Hello, Java!";
String prefixNull = null;
String prefixEmpty = "";
// Check with a null prefix
try {
boolean startsWithPrefixNull = text.startsWith(prefixNull);
System.out.println("Does the text start with null? " + startsWithPrefixNull);
} catch (NullPointerException e) {
System.out.println("Checking with null prefix resulted in: " + e);
}
// Check with an empty prefix
boolean startsWithPrefixEmpty = text.startsWith(prefixEmpty);
System.out.println("Does the text start with an empty string? " + startsWithPrefixEmpty);
}
}
この更新されたコードでは:
prefixNull
を宣言し、null
に設定しています。prefixEmpty
を宣言し、空文字列 ""
に設定しています。prefixNull
でチェックする際に try-catch
ブロックを使用しています。これは、Java で null
オブジェクトに対してメソッドを呼び出そうとすると NullPointerException
が発生するためです。この例外をキャッチして何が起こるかを確認します。prefixEmpty
でチェックしています。ファイルを保存します(Ctrl+S または Cmd+S)。
ターミナルを開き、~/project
ディレクトリにいることを確認します。
修正した Java ファイルをコンパイルします。
javac PrefixChecker.java
コンパイルしたプログラムを実行します。
java PrefixChecker
以下の出力が表示されるはずです。
Checking with null prefix resulted in: java.lang.NullPointerException
Does the text start with an empty string? true
この出力は 2 つの重要なポイントを示しています。
startsWith()
に null
を接頭辞として渡すと、NullPointerException
が発生します。このため、オブジェクトに対してメソッドを呼び出す前に潜在的な null
値を処理することが重要です。startsWith()
に空文字列 (""
) を接頭辞として渡すと true
が返されます。これは、どの文字列も空文字列で始まると見なすことができるためです。startsWith()
が null
と空文字列をどのように扱うかを理解することは、Java プログラムでエラーを防ぎ、正しいロジックを書くために重要です。
この実験では、Java の startsWith()
メソッドを使用して、文字列が特定の接頭辞で始まるかどうかをチェックする方法を学びました。簡単な Java プログラムを作成し、コンパイルして実行し、出力を確認することで、このメソッドの適用を練習しました。この基本的なスキルは、Java プログラミングにおける様々な文字列操作タスクに不可欠です。