java代码中的toString

java代码中的toString,java,string,Java,String,以下是我的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 Strin

以下是我的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)
它起作用了。
谁能告诉我原因吗。谢谢

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

由于
char[]
类不会覆盖默认的
对象的
toString()
实现,因此它不会返回由char数组中的字符组成的字符串,而是返回char[]类名+哈希代码[C@19821f

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

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

toString()
返回对象的字符串表示。您可以将其视为对象的描述。
newstring(chars)
将为您提供一个包含
char
数组内容的
String


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

请注意,在Java字符串的构造函数中,有一个接受字符数组。它会按照预期将字符数组转换为字符串,这是执行操作的正确选择。

请注意,在Java字符串的构造函数是一个接受字符数组的构造函数。它将字符数组转换为您所期望的字符串,这是您所做操作的正确选择。

您的期望值是什么?您的期望值是什么?值得一提的问题是,数组是一个
对象
并且不会覆盖
toString()
因此您得到了创建输出的
Object.toString()
。FWIW所有数组类型都没有toString,这就是为什么在
java.util.Arrays
class.Prob中存在实用方法的原因。值得一提的是,数组是
对象
并且不重写
toString()
因此您得到了
Object.toString()
,这就是创建输出的原因。FWIW所有数组类型都没有toString,这就是为什么
java.util.Arrays
类中存在实用方法的原因。