Sch*_*fty 2 java string null-terminated
为什么与b不同?
String a = "BuildGUID10035\0528\0440";
String b = "BuildGUID10035" + '\0' + 528 + '\0' + 440;
System.out.println("A: " + a);
System.out.println("B: " + b);
System.out.println(a.equals(b));
Run Code Online (Sandbox Code Playgroud)
NPE*_*NPE 10
它们是不同的,因为在第一个字符串中,\052
被解释为单个八进制转义序列(也是如此\044
).
以下两个字符串确实比较相等:
String a = "BuildGUID10035\000528\000440";
String b = "BuildGUID10035" + '\0' + 528 + '\0' + 440;
Run Code Online (Sandbox Code Playgroud)
(我把它换成了\0
同\000
在a
).