5

我正在尝试在 Java中复制它。为了节省您的点击,它表示字符数组['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中是否可能?还是我对事物的理解是错误的?

4

1 回答 1

6

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

于 2012-06-07T15:58:17.070 回答