我正在尝试在Java中复制this。为了节省您的点击时间,它说字符数组['F', 'R', 'A', 'N', 'K', NULL, 'k', 'e', 'f', 'w']转换为以null终止的字符串时,将在'K'之后停止,因为它在那里遇到了null指针。但是,我的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完全可以做到这一点吗?也许我对事情的理解是错误的?

最佳答案

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

10-07 18:46