我正在尝试在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
的位置,并在构造字符串时将其停在那里。