【发布时间】:2013-07-03 13:52:36
【问题描述】:
当我使用空字符'\u0000' 时,stringbuilder 将停止追加新元素。
例如:
StringBuilder _stringBuilder = new StringBuilder();
_stringBuilder.append('\u0000');
_stringBuilder.append('a');
System.out.println("."+_stringBuilder+".");
返回
.
我知道不应打印 null 值(或打印为 null 字符串值)但在这种情况下,为什么 stringbuilder 无法添加更多元素?
注意:我在 ubuntu 上使用 jdk 1.6.0_38。
【问题讨论】:
-
'\0' - null 终止符,在 C 和 C++ 字符串中用作字符串的结尾
-
我怀疑
StringBuilder已停止添加新元素。这更可能是显示结果String时出现的问题。附加几个元素后StringBuilder的length()是什么? -
我在 Win 7 的 jdk 1.6.0_25 上的 eclipse 中运行了您的确切代码,它打印出
. a.... 可能是特定于 shell 的东西。 -
我认为这是特定于操作系统的,因为 Java 字符串可以包含空字符。 Win7在这里打印相同
-
打印
.a.这里ideone.com/BjRKT0
标签: java linux eclipse null character