はじめに
この実験では、Java の startsWith() メソッドを使用して、文字列が特定の接頭辞で始まるかどうかをチェックする方法を学びます。この実践的な演習では、startsWith() メソッドの適用方法を案内し、さまざまなケースでの動作をテストし、null や空の接頭辞をどのように扱うかを理解します。この実験の終わりまでに、この基本的な文字列操作技術の使用に習熟するようになります。
startsWith() を使用して接頭辞をチェックする
このステップでは、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!" で初期化しています。- もう 1 つの
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 および空の接頭辞をチェックする
このステップでは、接頭辞が 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 プログラミングにおける様々な文字列操作タスクに不可欠です。



