Java中char数组的默认值是什么?

时间:2016-02-25 07:00:56

标签: java arrays char

如果我像这样分配字符数组:

char[] buffer = new char[26];

分配的默认值是多少?我试图打印它,它只是一个空角色。

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

this is what is inside=>

是否有ASCII代码? 我需要能够确定数组是否为空,而且当我用字符填充前五个元素时,我需要找出第六个元素是空的。感谢。

2 个答案:

答案 0 :(得分:9)

它与任何类型相同:该类型的默认值。 (所以和你一样,进入一个没有特别初始化的领域。)

默认值在JLS 4.12.5中指定:

  

对于char类型,默认值为空字符,即'\u0000'

话虽如此,听起来你真的想要List<Character>,它可以跟踪集合的实际大小。如果您需要随机访问列表(例如,即使您没有填充元素2,也希望能够填充元素25),那么您可以考虑:

  • Character[]使用null作为&#34;未设置&#34;价值而不是'\u0000'(毕竟,这仍然是一个角色......)
  • A Map<Integer, Character>
  • 坚持使用char[],如果您知道,并且永远不会想要将值为'\u0000'的元素视为&#34;设置&#34;

(如果不了解更多关于你正在做什么的话,很难知道哪一个是最合适的。)

答案 1 :(得分:0)

您还可以将其转换为int,然后进行比较。
对于前- 假设我将数组声明为

char[] arr = new char[10];
arr[3]='1';

然后,下面的代码

for(char c:arr){
    if((int)c!=0){
        System.out.println(c);
    }
}

会输出

1