1

以下是我的java代码片段:

static String sortChars(String s) {
    char[] chars = s.toCharArray();
    Arrays.sort(chars);
    return chars.toString();
}

我使用以下方法调用上述函数:

String result = sortChars(s);

但结果并不符合我的预期:例如,s="are",result="aer"。但是,当我使用:

return new String(chars)

有用。有人可以告诉我它的原因。谢谢

4

3 回答 3

8

由于char[]class 没有覆盖 defaultObjecttoString()实现,所以它不会返回由 char 数组中的字符组成的字符串,而是char[] 类名 + 哈希码。例如:arr[C@19821f

于 2013-01-05T18:28:29.427 回答
0

toString()返回对象的字符串表示形式。您可以将其视为对对象的描述。 new String(chars)会给你一个数组String的内容。char

如果toString()要向用户或在日志中表示对象,请使用,new String()如果要获取String与数组内容相同的对象,请使用

于 2013-01-05T18:32:56.400 回答
0

请注意,Java String 的构造函数中有一个接受字符数组。这会将字符数组转换为您所期望的字符串,这是您正在做的事情的正确选择。

于 2013-01-05T19:16:56.600 回答