当我使用null字符时'\u0000',stringbuilder将停止添加新元素。
'\u0000'
例如:
StringBuilder _stringBuilder = new StringBuilder(); _stringBuilder.append('\u0000'); _stringBuilder.append('a'); System.out.println("."+_stringBuilder+".");
退货
.
我知道不应打印null值(或像打印null字符串值一样打印),但是在这种情况下,为什么stringbuilder无法添加更多元素?
注意:我在ubuntu上使用jdk 1.6.0_38。
空字符是一个保留字符,它指示字符串的结尾,因此,如果您打印后跟的内容\u0000,则在此之后将不打印其他任何内容。
\u0000
为什么在使用null字符后stringbuilder停止添加元素? 它不是真的Java,而是将您的终端视为\u0000字符串的结尾。
有人说,使用Windows可以输出.a.(我没有测试),这是因为Windows终端的工作方式不同于基于Unix的系统终端。我非常确定,如果您在一台OSX机器上运行此代码,您将获得与Linux上相同的输出
.a.