はじめに
この実験では、Java で文字列が空かどうかをチェックする方法を学びます。3 つの主要な手法を探っていきます。具体的には、length() メソッドを使って文字列の長さを確認する方法、直接的にチェックするための専用の isEmpty() メソッドを利用する方法、そして重要なこととして、エラーを避けるために空チェックを行う前に潜在的な null 文字列の扱いを行う方法です。この実験の終わりまでに、Java プログラムで文字列の空を効果的に判断する方法をしっかりと理解するようになるでしょう。
length() メソッドを使用して文字列の長さを検証する
このステップでは、Java の組み込み length() メソッドを使用して文字列の長さを判断する方法を探ります。文字列の長さを理解することは、どのプログラミング言語でもテキストデータを扱う際の基本的な概念です。
Java では、String は文字のシーケンスです。length() メソッドは、文字列に含まれる文字数を調べる簡単な方法です。これは、単語の文字数や文の単語数を数えるのと同じようなものです。
これを実証するために、簡単な Java プログラムを作成しましょう。
WebIDE エディタで
HelloJava.javaファイルが開いていない場合は、開きます。ファイルの内容全体を次のコードに置き換えます。
public class HelloJava { public static void main(String[] args) { String greeting = "Hello, Java!"; int length = greeting.length(); System.out.println("The string is: " + greeting); System.out.println("The length of the string is: " + length); } }このコードの新しい部分を見てみましょう。
String greeting = "Hello, Java!";:この行は、greetingという名前の変数を宣言し、文字列値 "Hello, Java!" を割り当てます。int length = greeting.length();:ここでlength()メソッドを使用しています。greeting文字列に対してlength()を呼び出し、その文字列の文字数を返します。この数値は、lengthという名前の整数型変数に格納されます。System.out.println("The string is: " + greeting);:この行は、元の文字列をコンソールに出力します。System.out.println("The length of the string is: " + length);:この行は、計算された文字列の長さを出力します。
ファイルを保存します(Ctrl+S または Cmd+S)。
次に、プログラムをコンパイルしましょう。WebIDE の下部にあるターミナルを開き、
~/projectディレクトリにいることを確認します。そして、次のコマンドを実行します。javac HelloJava.javaコンパイルが成功すると、何も出力されません。
最後に、コンパイルされたプログラムを実行しましょう。
java HelloJava次のような出力が表示されるはずです。
The string is: Hello, Java! The length of the string is: 12出力には、元の文字列とその長さ(コンマ、スペース、感嘆符を含めて 12)が表示されます。
あなたは、Java で length() メソッドを使用して文字列の長さを調べることに成功しました!これは、テキストデータを扱う際の基本的で重要な操作です。
isEmpty() メソッドで空文字列をチェックする
このステップでは、Java の isEmpty() メソッドを使って文字列が空かどうかをチェックする方法を学びます。空文字列とは、文字数がゼロの文字列です。これは、空白やその他の文字を含む文字列とは異なります。
isEmpty() メソッドは、文字列の長さがゼロかどうかをチェックする便利な方法です。文字列が空の場合は true を返し、そうでない場合は false を返します。
isEmpty() メソッドを実証するために、HelloJava.java プログラムを修正しましょう。
WebIDE エディタで
HelloJava.javaファイルを開きます。既存のコードを次のコードに置き換えます。
public class HelloJava { public static void main(String[] args) { String str1 = "Hello"; String str2 = ""; // This is an empty string String str3 = " "; // This string contains a space System.out.println("String 1: \"" + str1 + "\""); System.out.println("Is String 1 empty? " + str1.isEmpty()); System.out.println("\nString 2: \"" + str2 + "\""); System.out.println("Is String 2 empty? " + str2.isEmpty()); System.out.println("\nString 3: \"" + str3 + "\""); System.out.println("Is String 3 empty? " + str3.isEmpty()); } }このコードでは:
- 内容を持つ
str1、空のstr2、空白を含むstr3という 3 つの文字列を宣言しています。 str1.isEmpty()、str2.isEmpty()、str3.isEmpty()を使って、各文字列が空かどうかをチェックしています。System.out.println()文は、文字列とisEmpty()チェックの結果(trueまたはfalse)を出力します。
- 内容を持つ
ファイルを保存します(Ctrl+S または Cmd+S)。
ターミナルで修正したプログラムをコンパイルします。
javac HelloJava.java再び、出力がないことはコンパイルが成功したことを意味します。
プログラムを実行します。
java HelloJava次のような出力が表示されるはずです。
String 1: "Hello" Is String 1 empty? false String 2: "" Is String 2 empty? true String 3: " " Is String 3 empty? falseご覧の通り、
isEmpty()はstr2を空(true)と正しく識別しますが、str1やstr3は空ではない(false)と識別します。これは、str3が空白文字を含んでいるためで、たとえ空白のように見えても空ではないからです。
あなたは、isEmpty() メソッドを使って文字列が空かどうかをチェックすることに成功しました。これは、ユーザー入力の検証や、欠落または空の文字列のケースを処理する必要があるテキストデータの処理に役立ちます。
空チェック前に null 文字列のハンドリングを行う
前のステップでは、isEmpty() メソッドを使って文字列が空かどうかをチェックする方法を学びました。しかし、Java には null という重要な概念があります。null 値は、変数が何らかのオブジェクトを参照していないことを意味します。null 文字列に対して isEmpty() のようなメソッドを呼び出そうとすると、プログラムは NullPointerException でクラッシュします。
文字列に対して何らかのメソッドを呼び出す前に、null 文字列を処理することが重要です。最も安全な方法は、まず文字列が null かどうかをチェックすることです。
null 文字列を処理する方法を実証するために、プログラムを修正しましょう。
WebIDE エディタで
HelloJava.javaファイルを開きます。既存のコードを次のコードに置き換えます。
public class HelloJava { public static void main(String[] args) { String str1 = "Hello"; String str2 = ""; String str3 = null; // This string is null System.out.println("Checking String 1: \"" + str1 + "\""); if (str1 != null && !str1.isEmpty()) { System.out.println("String 1 is not null and not empty."); } else { System.out.println("String 1 is null or empty."); } System.out.println("\nChecking String 2: \"" + str2 + "\""); if (str2 != null && !str2.isEmpty()) { System.out.println("String 2 is not null and not empty."); } else { System.out.println("String 2 is null or empty."); } System.out.println("\nChecking String 3: " + str3); // Note: printing null doesn't crash if (str3 != null && !str3.isEmpty()) { System.out.println("String 3 is not null and not empty."); } else { System.out.println("String 3 is null or empty."); } } }このコードでは:
null文字列str3を導入しています。isEmpty()を呼び出す前に、まずstr != nullを使って文字列がnullかどうかをチェックしています。- 論理 AND 演算子 (
&&) を使って、nullチェックとisEmpty()チェックを組み合わせています。!str.isEmpty()の部分は、str != nullが true の場合にのみ評価され、NullPointerExceptionを防ぎます。 if文は、文字列がnullでなく、かつ空でないかどうかをチェックしています。
ファイルを保存します(Ctrl+S または Cmd+S)。
ターミナルでプログラムをコンパイルします。
javac HelloJava.javaプログラムを実行します。
java HelloJava次のような出力が表示されるはずです。
Checking String 1: "Hello" String 1 is not null and not empty. Checking String 2: "" String 2 is null or empty. Checking String 3: null String 3 is null or empty.この出力は、コードが
str1をnullでなく空でもないと正しく識別し、str2とstr3をnullまたは空と識別し、クラッシュすることなく動作していることを示しています。
文字列に対してメソッドを呼び出す前に null をチェックすることで、Java プログラムをより堅牢にし、一般的なエラーを防ぐことができます。これは Java プログラミングにおいて非常に重要な慣行です。
まとめ
この実験では、Java で文字列が空かどうかをチェックする方法を学びました。まず、文字列の文字数を判断するための length() メソッドを調べました。これは、テキストデータを扱う上での基本的な概念です。length() の使い方を実証し、文字列とその長さをコンソールに出力する簡単な Java プログラムを作成しました。
引き続き、isEmpty() などの他のメソッドを調べ、Java プログラムで堅牢な空チェックを行うために null 文字列を処理する方法を学びます。



