【Java】文字列が空(Empty)かnullかを判定する方法をサンプルコード付きで解説
はじめに
この記事では、Javaで文字列が空(Empty)であるかnullであるかを判定する方法を、具体的なサンプルコードとともにわかりやすく解説します。
まず押さえておきたいのは、nullと空文字列は別物だという点です。nullは「文字列オブジェクト自体が存在しない」状態を、空文字列は「オブジェクトは存在するが長さが0(中身が1文字も含まれていない)」状態を表します。文字列とは、1つ以上の文字を含み、ダブルクォート(" ")で囲まれたデータ型のことです。両者を混同するとNullPointerExceptionなどの実行時エラーにつながるため、正しく区別して判定することが重要です。
入力と出力のイメージ
今回作成するプログラムは、次のように動作します。
入力:
文字列の値: null
出力:
この文字列はnullです
判定のアルゴリズム
- 処理を開始する。
- 文字列変数 input_string を宣言する。
- 値を設定する。
- if文で「input_string == null」を評価する。trueであれば文字列はnull、falseであればnullではない。
- 結果を出力する。
- 処理を終了する。
例1:mainメソッド内にすべて記述するパターン
最初の例では、すべての処理をmainメソッドの中にまとめて記述します。
public class Demo {
public static void main(String[] args) {
String input_string = null;
System.out.println("文字列の値: " + input_string);
if (input_string == null) {
System.out.println("\nこの文字列はnullです");
}
else if (input_string.isEmpty()) {
System.out.println("\nこの文字列は空文字列です");
} else {
System.out.println("\nこの文字列は空でもnullでもありません");
}
}
}実行結果
文字列の値: null この文字列はnullです
例2:オブジェクト指向スタイルでメソッドに分割するパターン
次の例では、判定処理を独立したメソッドisNullEmpty()として切り出し、オブジェクト指向プログラミングらしい再利用しやすい構成にしています。
public class Demo {
static void isNullEmpty(String input_string) {
if (input_string == null) {
System.out.println("\nこの文字列はnullです");
}
else if (input_string.isEmpty()) {
System.out.println("\nこの文字列は空文字列です");
} else {
System.out.println("\nこの文字列は空でもnullでもありません");
}
}
public static void main(String[] args) {
String input_string = null;
System.out.println("文字列の値: " + input_string);
isNullEmpty(input_string);
}
}実行結果
文字列の値: null この文字列はnullです
判定時の重要ポイント
このコードで特に重要なのは、null判定を先に行っている点です。もし先にisEmpty()を呼び出すと、変数がnullの場合にNullPointerExceptionが発生してしまいます。必ず「== 演算子によるnullチェック」を先に行い、その後に「isEmpty()メソッドによる空文字チェック」を行うようにしましょう。
なお、Java 11以降では、空白文字のみの文字列も「空」とみなしたい場合に使えるisBlank()メソッドも用意されています。用途に応じて使い分けるとよいでしょう。
まとめ
文字列がnullか空かの判定は、「== 演算子によるnullチェック」と「isEmpty()メソッドによる空文字チェック」を組み合わせることで簡単に実現できます。nullチェックを先に行えば安全に処理でき、判定ロジックをメソッド化しておけば再利用性の高いコードになります。ぜひ実際の開発でも活用してみてください。
-
Javaで回文を判定するプログラムの書き方【数値・文字列の実例付き】
回文(パリンドローム)とは、逆から読んでも同じになる文字列や数値のことです。たとえば、121、313、525 といった数値や、「aba」「wow」のような文字列が回文に該当します。この記事では、Javaを使って回文を判定する方法を、数値の場合と文字列の場合の2つのパターンに分けて、サンプルコードと実行結果とともにわかりやすく解説します。回文数をチェックする方法数値が回文かどうかを判定するには、元の数値を1桁ずつ取り出して逆順に組み立て直し、元の値と比較します。具体的には、剰余演算(%10)で末尾の桁を取り出し、それを結果変数に10倍しながら加算していくことで反転した数値を作れます。サンプルコー
-
文字列が空かどうかをチェックするPythonプログラム
この記事では、与えられた文字列が空であるかどうかを判定するための解決策とアプローチについて解説します。 問題文 文字列が入力として与えられたとき、その文字列が空(空文字列)であるかどうかを判定する必要があります。 Pythonの文字列はイミュータブル(変更不可)な性質を持っているため、文字列に対して何らかの操作を行う際には注意して扱う必要があります。 ここでは、上記の問題を解決するための2つのアプローチを紹介します。 len()メソッドを使用する方法 等価演算子(==)を使用する方法 アプローチ1:len()メソッドを使う方法 len()関数で文字列の長さを取得し、その長さが0であれば空文