【发布时间】:2014-07-14 10:26:33
【问题描述】:
Java 中以下两个代码块的输出不同。我正在尝试了解原因。
private String sortChars(String s){
char[] arr = s.toCharArray(); //creating new char[]
Arrays.sort(arr); //sorting that array
return new String(arr);
}
这个返回一个字符串,其中的字符按预期排序。
private String sortChars(String s){
char[] arr = s.toCharArray(); //creating new char[]
Arrays.sort(arr); //sorting that array
return arr.toString();
}
对不起。我的错! 用于比较两个字符串。 正如许多人所建议的那样,第二个字符串的输出看起来像这样 - [C@2e0ece65
谢谢!
【问题讨论】:
-
在第二个 sn-p 中,您在从 Object 类继承的数组上调用
toString方法。 -
不是反过来吗?即
new String(arr)返回排序后的字符串? -
这就是OP所说的:新字符串包含排序值。
-
@ZouZou 这有什么关系?该数组不包含有关其顺序的信息,暗示它是线性的
-
如果他们真的打印不同的字符序列,我会感到惊讶。