繁体   English   中英

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

[英]What are the default values of the char array in Java?

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

char[] buffer = new char[26];

分配给它的默认值是什么? 我试图打印它,它只是一个空字符。

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

this is what is inside=>

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

它与任何类型相同:该类型的默认值。 (因此与您在未专门初始化的字段中获得的内容相同。)

默认值在JLS 4.12.5中指定:

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

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

  • 使用null作为“未设置”值而不是'\'Character[] (毕竟它仍然是一个字符...)
  • Map<Integer, Character>
  • 坚持使用char[]如果你知道你永远、永远、想要将一个值为'\'的元素视为“set”

(如果不了解您在做什么,就很难知道其中哪一个最合适。)

您也可以将其转换为 int 然后进行比较。
例如 - 假设我将数组声明为

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

然后,下面的代码

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

会输出

1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM