通过空指针中途终止char [] - > String转换

sky*_*der 5 java string null

我试图用Java 复制.为了节省你的点击,它说一个字符数组['F', 'R', 'A', 'N', 'K', NULL, 'k', 'e', 'f', 'w'],当转换为以null结尾的字符串时,将在之后停止'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);
    }
}
Run Code Online (Sandbox Code Playgroud)

还是打印ac.除此之外,我还试过(1)不初始化broken[1]和(2)显式设置为null,在尝试甚至没有编译.

这在Java中是否可行?或许我对事物的理解是错误的?

NPE*_*NPE 6

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