java代码中的toString

时间:2013-01-05 18:25:52

标签: java string

以下是我的java代码片段:

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

我使用:

调用上面的函数
String result = sortChars(s);

但结果不符合我的期望:例如,s =“are”,结果=“aer”。但是,当我使用:

return new String(chars)

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

3 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:0)

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

如果要向用户或日志中表示对象,请使用toString()如果要获取与{1}}内容相同的new String()对象,请使用String你的阵列

答案 2 :(得分:0)

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