有人能告诉我为什么这个 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
中的每个位置, 然后再试一次。然后您应该在所有平台上看到相同的输出。
我 运行 我的 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
中的每个位置, 然后再试一次。然后您应该在所有平台上看到相同的输出。