Java で空の文字を表す

Mohammad Irfan 2023年10月12日
  1. Java で空の文字を作成する
  2. Java で Null 文字を渡すことによる空の文字の作成
  3. Java で Unicode 値を使用して空の文字を作成する
  4. Java で MIN_VALUE 定数を使用して空の文字を作成する
Java で空の文字を表す

このチュートリアルでは、Java で空の文字を表す方法を紹介します。

Java では、空の char[] 配列を使用できますが、空の char を使用することはできません。これは、char と言うと、char は少なくとも文字を表し、空の char は意味をなさないためです。空の char 値はどの char にも属していないため、Java はコンパイル時エラーを出します。

空の文字を作成するには、null 値\0 またはデフォルトの Unicode 値\u0000 を割り当てることができます。\u0000 は、オブジェクトの作成時に Java コンパイラによって使用される char のデフォルト値です。

Java では、他のプリミティブと同様に、char には値が必要です。いくつかの例で理解しましょう。

Java で空の文字を作成する

Java で空の char を作成し、コードをコンパイルしてみましょう。以下の例を参照してください。単一の char 変数 ch を作成し、その値を出力して、出力するものがあるかどうかを確認し、コンパイル時エラーがスローされることを確認します。

public class SimpleTesting {
  public static void main(String[] args) {
    char ch = '';
    System.out.println(ch);
  }
}

出力:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	Invalid character constant

上記のコード例は、無効な文字定数が原因でコンパイルに失敗します。これは、Java が空の文字を認識しないことを意味しますが、スペースを持つ文字を割り当てると、コードは正常にコンパイルされ、コンソールに空のスペースが出力されます。

スペース文字と空文字を混同しないでください。どちらも異なり、Java はそれらを異なる方法で処理します。以下の例を参照してください。

public class SimpleTesting {
  public static void main(String[] args) {
    char ch = ' ';
    System.out.println(ch);
  }
}

Java で Null 文字を渡すことによる空の文字の作成

これは、空の文字を作成するために使用でき、コードのコンパイルの失敗を回避できる別のソリューションです。ここでは、\0 を使用して空の文字を作成しましたが、正常に機能します。以下の例を参照してください。

public class SimpleTesting {
  public static void main(String[] args) {
    char ch = '\0';
    System.out.println(ch);
  }
}

Java で Unicode 値を使用して空の文字を作成する

\u0000 値を使用して、Java で空の文字を作成できます。Java コンパイラは、この値を使用して char の初期デフォルト値として設定します。空の文字を示す null を表します。以下の例を参照してください。

public class SimpleTesting {
  public static void main(String[] args) {
    char ch1 = '\u0000';
    System.out.println(ch1);
  }
}

Java で MIN_VALUE 定数を使用して空の文字を作成する

Java Character クラスは、文字インスタンスの最小値を表す MIN_VALUE 定数を提供します。Java では、最小値は\u0000 であり、Character クラスの MIN_VALUE 定数を使用して取得でき、任意の char 変数に割り当てて空の char を作成できます。以下の例を参照してください。

public class SimpleTesting {
  public static void main(String[] args) {
    char ch = Character.MIN_VALUE;
    System.out.println(ch);
  }
}

Character クラスを使用している場合は、null リテラルを直接使用して、Java で空の char インスタンスを作成できます。Character クラスは Object クラスから派生しているため、インスタンスとして null を割り当てることができます。以下の例を参照してください。

public class SimpleTesting {
  public static void main(String[] args) {
    Character ch = null;
    System.out.println(ch);
  }
}

関連記事 - Java Char