为什么与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));
最佳答案
它们是不同的,因为在第一个字符串中,\052
被解释为单个八进制转义序列(\044
也是如此)。
以下两个字符串的比较结果相等:
String a = "BuildGUID10035\000528\000440";
String b = "BuildGUID10035" + '\0' + 528 + '\0' + 440;
(我已将
\0
替换为\000
中的a
。)关于java -\0的字符串在Java中表现怪异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10603518/