+-
如果Java打印NUL字符怎么办?
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复制/粘贴字符串时遇到问题,这不足为奇.

这是我的日食和输出的屏幕截图:
enter image description here

点击查看更多相关文章

转载注明原文:如果Java打印NUL字符怎么办? - 乐贴网