可能重复:
Java string replace and the NUL (NULL, ASCII 0) character?
我正在用Java做一些String算法,我注意到无论在哪里我都包含一个值为0(零)的char,它标志着String的结束。像这样:
String aString = "I'm a String";
char[] aStringArray = aString.toCharArray();
aStringArray[1] = 0;
System.out.println(new String(aStringArray)); //It outputs "I"
这种行为的原因是什么?
答案 0 :(得分:15)
字符'\0'
是空字符。它是一个控制字符,不终止字符串,这不是字符串在Java中的工作方式(不过它们在C中的工作方式。)
答案 1 :(得分:2)
如需了解更多信息,请在代码中添加以下内容:
System.out.println(new String(aStringArray).length());
for (Byte b : new String(aStringArray).getBytes()) {
System.out.print("["+b+"]");
}
您的渲染系统(控制台或输出窗口)未显示所有内容。
答案 2 :(得分:0)
我想知道您是否发布了实际代码。使用String(byte[])构造函数时,字符串的实际长度取决于数组的内容。