为什么与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/

10-11 21:55