web-dev-qa-db-ja.com

Javaのchar配列のデフォルト値は何ですか?

このように文字の配列を割り当てると:

char[] buffer = new char[26];

割り当てられるデフォルト値は何ですか?印刷してみましたが、空の文字です。

System.out.println("this is what is inside=>" + buffer[1]);

this is what is inside=>

ASCIIコードはありますか?配列が空かどうかを判断できる必要があります。さらに、最初の5つの要素に文字を入力すると、次のように検索する必要があります。 6番目の要素が空であることを確認します。ありがとう。

8
user1090944

これは他のタイプの場合と同じです。そのタイプのデフォルト値です。 (つまり、特に初期化されていないフィールドで取得するのと同じです。)

デフォルト値は JLS 4.12.5 で指定されています:

Char型の場合、デフォルト値はヌル文字、つまり'\u0000'です。

そうは言っても、コレクションの実際のサイズを追跡できるList<Character>が本当に必要なようです。リストへのランダムアクセスが必要な場合(たとえば、要素2を入力していなくても、要素25を入力できるようにしたい場合)、次のことを検討できます。

  • Character[]の代わりにnullを「未設定」値として使用する'\u0000'(結局のところ、まだ文字です...)
  • Map<Integer, Character>
  • char[]に固執することは、値'\u0000'の要素を「セット」と見なすことは決してないだろうとわかっている場合は

(あなたが何をしているのかをもっと知らなければ、これらのどれが最も適切であるかを知るのは難しいです。)

12
Jon Skeet