如果我声明一个字符串,该字符串是否有可能包含 <0x00>
以及分配的数据?
例如:
String s = "Stack";
字符串结果可以是:
Stack<0x00><0x00><0x00><0x00><0x00><0x00><0x00><0x00><0x00><0x00><0x00><0x00>
最佳答案
是的,如:
String s = "Stack\u0000\u000";
这与 C/C++ 不同,在 C/C++ 中,字符串以 '\0'
字符终止。
如果必须将字符串作为字节数组传递给 native 代码,java 有一个可用于 UTF-8 的技巧,
修改后的 UTF-8,还将 '\u0000'
转换为多字节序列:DataOutputStream.writeUTF(String)
请注意,XML 中不允许使用 \u0000
(与其他一些控制字符一样)。
顺便说一句,0 字符串终止符被其发明者认为是 C 语言中最大的错误。它还影响了处理器指令集。
关于java - java中字符串可以包含<0x00>以及指定的值吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59879526/