2012-06-07 27 views
5

我試圖在Java中複製this。爲了節省點擊,它說,當字符數組['F', 'R', 'A', 'N', 'K', NULL, 'k', 'e', 'f', 'w']轉換爲以空字符結尾的字符串時,將在'K'之後停止,因爲它在那裏遇到空指針。但是,我的Java嘗試似乎沒有工作。終止char [] - >通過空指針中途轉換字符串

public class TerminatingStrings{ 
    public static void main(String[] args){ 
     char[] broken = new char[3]; 
     broken[0] = 'a'; 
     broken[1] = '\u0000'; 
     broken[2] = 'c'; 
     String s = new String(broken); 
     System.out.println(s); 
    } 
} 

仍然打印ac。除此之外,我還嘗試了(1)不初始化broken[1]和(2)在沒有編譯的嘗試中明確地將其設置爲null。

這在Java中可能嗎?或者,也許我對事物的理解是錯誤的?

回答

6

與C不同,Java不使用NUL終止的字符串。爲了獲得這種行爲,你的代碼必須在char數組中找到第一個\0的位置,並在構造字符串時停止在那裏。

+1

正好。空!= NUL –