以下是我的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)
有效。 有人可以告诉我它的原因。感谢
答案 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的构造函数中包含一个接受字符数组的构造函数。这会将字符数组转换为您期望的字符串,并且它是您正在做的事情的正确选择。