2012-03-17 245 views
7

可能重複:
Java string replace and the NUL (NULL, ASCII 0) character?Java中char(0)的含義是什麼?

我做一些Java中的字符串算法,我注意到,無論我到包括與0(零)的值一個char它標誌着字符串的結尾。像這樣:

String aString = "I'm a String"; 
char[] aStringArray = aString.toCharArray(); 
aStringArray[1] = 0; 
System.out.println(new String(aStringArray)); //It outputs "I" 

這種行爲的原因是什麼?

+1

空字符:http://en.wikipedia.org/wiki/Null_character – 2012-03-17 20:49:45

回答

10

字符'\0'是空字符。這是一個控制字符,它終止字符串,這不是字符串的Java(這是他們用C是如何工作的,雖然)

2

對於一些額外的觀點是如何工作的,以下內容添加到您的代碼:

System.out.println(new String(aStringArray).length()); 
for (Byte b : new String(aStringArray).getBytes()) { 
    System.out.print("["+b+"]"); 
} 

您的渲染系統(控制檯或輸出窗口)未顯示所有內容。

0

我想知道你是否發佈了你的實際代碼。當使用String(byte[])構造函數時,字符串的實際長度取決於數組的內容。

相關問題