任何人都可以在char数组中解释这种行为

时间:2014-03-09 15:23:51

标签: java arrays char

请找到代码段。

    public static void main(String args[]) {
    char[] tmpArray = new char[10];
    tmpArray[0] = 'a';
    tmpArray[1] = 'b';
    tmpArray[3] = 'd';

    for (char element : tmpArray) {
        System.out.print(element);
    }
    System.out.println(String.valueOf(tmpArray));
}

我除了显示abd之外。
但是它没有在forloop中显示任何内容,而且它只在sop中显示"ab"

当我尝试调试时,数组仍将第4个元素保存为'd'。如果在第3个元素中给出d,则显示正确。是按合同规格吗?
它基本上使用char的Arrays.copy创建新的String实例。甚至新的char [](String实例中的value也包含'd'作为第4个元素)。这种行为是由于在显示时在数组中迭代...
没有真正的用例。我只是试图解决其他问题(与此无关)并得到了这种情况。

提前致谢。

更新

评论描述,他们在最后看到'd'。这就是我除外。但我没有在我的机器上显示。

Ubuntu 12,Jdk 1.8,eclipse kepler。那么它会转移到eclipse控制台吗?

1 个答案:

答案 0 :(得分:0)

如果没有明确设置,您假设数组将默认为空格('')字符。相反,它默认为null。见

Can we assume default array values in Java? for example, assume that an int array is set to all zeros?