はじめに
この実験では、Java で文字列が特定の長さを持っているかどうかをチェックする方法を学びます。まずは length() メソッドを使って文字列の長さを取得する基本的な手順から説明します。次に、この長さを期待値と比較する方法を学び、重要なことに、エラーを防ぐために潜在的な null 文字列をどのように扱うかを学びます。この実験の終わりまでに、Java アプリケーションで堅牢な文字列長チェックを実行する方法をしっかりと理解するようになります。
length() を使って文字列の長さを取得する
このステップでは、Java で length() メソッドを使って文字列の長さを求める方法を学びます。length() メソッドは Java の組み込み関数で、文字列の文字数を返します。
まず、
~/projectディレクトリにStringLength.javaという名前の新しい Java ファイルを作成しましょう。左側のファイルエクスプローラーで右クリックして「新しいファイル」を選択し、StringLength.javaと入力することで作成できます。エディターで
StringLength.javaファイルを開き、以下のコードを追加します。public class StringLength { public static void main(String[] args) { String greeting = "Hello, LabEx!"; int length = greeting.length(); System.out.println("The length of the string is: " + length); } }新しい部分を見てみましょう。
String greeting = "Hello, LabEx!";: この行では、String型のgreetingという名前の変数を宣言し、それに"Hello, LabEx!"という値を代入しています。int length = greeting.length();: ここでlength()メソッドを使っています。greeting文字列に対してlength()を呼び出すと、文字数(スペースや句読点を含む)が返されます。この数値はlengthという名前の整数型変数に格納されます。System.out.println("The length of the string is: " + length);: この行では、「The length of the string is: 」というテキストの後にlength変数に格納された値を出力します。
ファイルを保存します(Ctrl+S または Cmd+S)。
次に、WebIDE の下部にあるターミナルを開き、
~/projectディレクトリにいることを確認します。必要に応じてcd ~/projectを使うことができます。javacコマンドを使って Java プログラムをコンパイルします。javac StringLength.javaエラーがなければ、何も出力されないはずです。
javaコマンドを使ってコンパイルされた Java プログラムを実行します。java StringLength以下の出力が表示されるはずです。
The length of the string is: 13この出力は、
length()メソッドが「Hello, LabEx!」という文字列の文字数を正しく計算したことを確認しています。文字数は 13 です。
Java で length() メソッドを使って文字列の長さを求めることに成功しました!
長さを期待値と比較する
前のステップでは、文字列の長さを取得する方法を学びました。今回は、この知識を使って文字列の長さを期待値と比較する方法を学びます。これはプログラミングでよく行われるタスクで、たとえばパスワードが最小長要件を満たしているかどうかをチェックする際に使われます。
前のステップで作成した StringLength.java ファイルを修正します。
WebIDE のエディターで
StringLength.javaファイルを開きます。mainメソッドを修正して比較を行うようにします。既存のmainメソッドを以下のコードに置き換えます。public class StringLength { public static void main(String[] args) { String password = "mysecretpassword"; int minLength = 8; // Minimum required length int passwordLength = password.length(); System.out.println("Password: " + password); System.out.println("Password length: " + passwordLength); System.out.println("Minimum required length: " + minLength); if (passwordLength >= minLength) { System.out.println("Password meets the minimum length requirement."); } else { System.out.println("Password does NOT meet the minimum length requirement."); } } }変更点を見てみましょう。
- 文字列変数名を
passwordに変更し、別の値を代入しました。 - 最小必要長を格納するための新しい整数型変数
minLengthを導入しました。 - 前と同じように
length()メソッドを使ってpasswordLengthを計算します。 if文を追加しました。if文はpasswordLengthがminLength以上かどうかをチェックします。- 条件 (
passwordLength >= minLength) が真の場合、ifブロック内のコードが実行され、成功メッセージが出力されます。 - 条件が偽の場合、
elseブロック内のコードが実行され、失敗メッセージが出力されます。
- 文字列変数名を
ファイルを保存します(Ctrl+S または Cmd+S)。
ターミナルを開き、
~/projectディレクトリにいることを確認します。修正した Java プログラムをコンパイルします。
javac StringLength.java再び、出力がない場合はコンパイルが成功したことを意味します。
プログラムを実行します。
java StringLength現在の
passwordとminLengthに基づいて、以下のような出力が表示されるはずです。Password: mysecretpassword Password length: 16 Minimum required length: 8 Password meets the minimum length requirement.コード内の
password文字列を 8 文字未満のもの(たとえば"short")に変更し、ファイルを保存して再コンパイルし、再度実行すると、elseブロックが実行されるのを確認できます。
これで、if 文を使って文字列の長さを特定の値と比較する方法を学びました!
長さチェックで null 文字列の処理を行う
前のステップでは、実際の文字値を持つ文字列で作業しました。しかし、プログラミングでは、文字列変数には時々 null と呼ばれる特殊な値が設定されることがあります。null 値は、その変数が何のオブジェクトも参照していないことを意味します。null 文字列に対して length() のようなメソッドを呼び出そうとすると、プログラムは NullPointerException でクラッシュします。
このステップでは、文字列の長さを取得する前に、null 文字列を安全に扱う方法を学びます。
WebIDE のエディターで
StringLength.javaファイルを開きます。mainメソッドを修正してnullチェックを追加します。既存のmainメソッドを以下のコードに置き換えます。public class StringLength { public static void main(String[] args) { String potentialString = null; // This string is null int minLength = 5; // Minimum required length System.out.println("String to check: " + potentialString); System.out.println("Minimum required length: " + minLength); if (potentialString != null) { int stringLength = potentialString.length(); System.out.println("String length: " + stringLength); if (stringLength >= minLength) { System.out.println("String meets the minimum length requirement."); } else { System.out.println("String does NOT meet the minimum length requirement."); } } else { System.out.println("Cannot check length: The string is null."); } } }変更点を見てみましょう。
- 変数名を
potentialStringに変更し、最初にその値をnullに設定しました。 - 外側の
if文if (potentialString != null)を追加しました。これはpotentialString変数がnullでないかどうかをチェックします。 - 長さを取得するコード (
potentialString.length()) とそれに続く長さの比較は、このifブロックの中にあります。これにより、文字列がnullでない場合にのみlength()が呼び出されることが保証されます。 - 外側の
if文のelseブロックは、文字列がnullの場合を処理し、長さをチェックできないことを示すメッセージを出力します。
- 変数名を
ファイルを保存します(Ctrl+S または Cmd+S)。
ターミナルを開き、
~/projectディレクトリにいることを確認します。修正した Java プログラムをコンパイルします。
javac StringLength.java出力がない場合はコンパイルが成功したことを意味します。
プログラムを実行します。
java StringLengthpotentialStringがnullなので、以下の出力が表示されるはずです。String to check: null Minimum required length: 5 Cannot check length: The string is null.次に、
potentialStringの値を"Java"のような非null文字列に変更し、保存して再コンパイルし、再度実行してみましょう。長さチェックが行われるのが確認できるはずです。String potentialString = "Java"; // This string is not null再コンパイルして実行した後、以下のような出力が表示されます。
String to check: Java Minimum required length: 5 String length: 4 String does NOT meet the minimum length requirement.これは、メソッドを呼び出す前に
null文字列を安全に扱い、プログラムのクラッシュを防ぐ方法を示しています。
まとめ
この実験では、Java の組み込み length() メソッドを使用して文字列の長さを求める方法を学びました。Java プログラムの作成、length() メソッドを使用した文字列の文字数の取得、そしてプログラムのコンパイルと実行、出力の確認を行いました。この基本的なスキルは、Java プログラミングにおける様々な文字列操作や検証に不可欠です。



