终止char [] - >中间的字符串转换通过空指针

时间:2012-06-07 15:56:34

标签: java string null

我正在尝试在Java中复制this。为了节省您的点击,它表示字符数组['F', 'R', 'A', 'N', 'K', NULL, 'k', 'e', 'f', 'w']在转换为以空字符结尾的字符串时将在'K'之后停止,因为它在那里遇到空指针。但是,我的Java尝试似乎没有起作用。

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中是否可行?或许我对事情的理解是错误的?

1 个答案:

答案 0 :(得分:6)

与C不同,Java不使用以NUL结尾的字符串。要获得该行为,您的代码必须在char数组中找到第一个\0的位置,并在构造字符串时停止。