+-

public static void main(String[] args) {
char[] array = new char[2];
array[0] = 'a';
String s = new String(array);
assert s.length() == 2;
System.out.print(">" + s + "<\n");
System.out.print(">" + s.substring(1) + "<\n");
System.out.print("end of test.\n");
}
输出为:
>a
>
end of test
与C不同,Java字符串不是以空字符结尾的,因此断言为true. Java为什么不打印
最佳答案
我已经在Eclipse中测试了您的代码,一切似乎都正常运行.
但是,如果我从Eclipse控制台复制/粘贴输出,然后将其粘贴到文本编辑器上,则仅粘贴您提到的> a.
我什至从Eclipse控制台粘贴了这> a复制/粘贴的内容(当我看到> a< ...查看下面的屏幕截图时). 因此,我将以下代码片段添加到您的代码中:
String f = " >" + s + "<\n";
for (int i=0; i < f.length(); i++) {
System.out.println((int)f.charAt(i));
}
这是ascii代码:
32
62
97
0
60
10
我认为您的控制台在打印NUL(或0)字符时发生冲突.此外,我在Windows上进行了测试,因此Windows在中间使用NUL复制/粘贴字符串时遇到问题,这不足为奇.
这是我的日食和输出的屏幕截图:
点击查看更多相关文章
转载注明原文:如果Java打印NUL字符怎么办? - 乐贴网