有人能告诉我为什么这个 java 代码得到不同的答案而 运行 来自 Mac(或 unixlike)来自 Windows

Can somebody tell me why this java code got different answers while running from Mac(or unixlike) from Windows

我 运行 我的 Windows 7 系统上的 eclipse 中的这段代码 returns 带有 Mac 没有的空格的字符串。这不是我用不同的IDE测试过的eclipse的问题。那么有人可以告诉我为什么吗?

public class CharPro {
    public static void main(String[] args) {
        char[] foo = new char[28];
        printCharArray(foo);
        foo[0]='0';
        foo[1]='1';
        printCharArray(foo);
        printCharArray(reverse(foo));
    }

    private static void printCharArray(char[] A) {
        for (int i = 0; i < A.length; ++i)
            System.out.print(A[i]);
        System.out.println();
    }

    private static char[] reverse(char[] A){
        int l=A.length;
        char[] B=new char[l];
        for (int i=0;i<l;i++){
            B[i]=A[l-1-i];
        }
        return B;
    }

}

请注意,您没有为 foo 数组中的所有 28 个位置赋值。这些未初始化的位置仍然包含一个 ASCII 零,然后您将其打印出来,终端仿真器负责解释您的输出并向您显示不同对待的解释。

请尝试在 new 分配一个实际的可见字符后添加一个循环 - 例如 A</code> 到 <code>foo 中的每个位置, 然后再试一次。然后您应该在所有平台上看到相同的输出。