char[]中的Java toString方法
我原以为toString方法会将一个char数组转换成一个字符串,但我错了char[]中的Java toString方法,java,tostring,arrays,Java,Tostring,Arrays,我原以为toString方法会将一个char数组转换成一个字符串,但我错了 char[] k=new char[2]; k[0]='k'; k[1]='k'; System.out.println(k.toString()); 此代码将输出:[C@112f614. 这个代码k.toString()到底发生了什么 我应该永远不要在char数组中调用toString方法吗 谢谢 新年快乐!字符串可以使用字符数组作为构造函数 String s = new String
char[] k=new char[2];
k[0]='k';
k[1]='k';
System.out.println(k.toString());
此代码将输出:[C@112f614.
这个代码k.toString()到底发生了什么
我应该永远不要在char数组中调用toString方法吗
谢谢
新年快乐!字符串可以使用字符数组作为构造函数
String s = new String(k);
您希望使用Arrays.toString(char[]{'a','b'})
你可以用
char data[] = {'a', 'b', 'c'};
String str = new String(data);
参见javadoc
公共字符串(char[]值)
分配一个新字符串,以便
表示当前包含在中的字符序列
字符数组参数。字符数组的内容为
已复制;对字符数组的后续修改不会影响
新创建的字符串。参数:value-字符串的初始值
串
在数组上调用toString将从Object调用toString方法。该方法将返回哈希代码
public String toString()返回
通常,toString方法返回一个
“文本表示”此对象。结果应该是一个简洁但
信息量大,易于阅读。它是
建议所有子类重写此方法。toString
类对象的方法返回一个字符串,该字符串由
对象是其实例的类,符号为“@”,
和的哈希代码的无符号十六进制表示形式
换句话说,此方法返回的字符串等于
价值:
getClass().getName()+'@'+Integer.toHexString(hashCode())返回:对象的字符串表示形式
您可能永远都不应该在任何类型的数组上调用toString。该类有许多用于创建数组的字符串表示的实用方法。这个问题的部分答案是:“这段代码k.toString()中到底发生了什么?” toString()从java.lang.Object继承而来,不被重写。实现只需打印规范类名加上@字母加上哈希代码。仅此而已。因此,调用此方法对应用程序没有用处,只是为了在IDE中进行调试,以至少了解存在哪种类型的对象 在这段代码k.toString()中到底发生了什么?我应该永远不要在char数组中调用toString方法吗
char数组的toString方法继承了Object的默认toString行为,即只打印从该对象在内存中的位置派生的唯一标识符。因此,除非您需要该唯一标识符,否则调用k.toString()没有多大意义。(k是您的char数组)因为数组是对象。所以调用
toString()
结果调用从对象类继承的toString()
方法:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
在[C@112f614,[C
表示它是一个字符数组
如果您想打印数组的内容,请在键入问题标题时使用,它会弹出几个已经回答了这个问题的现有标题,然后它们会再次列在这个屏幕的右侧。数组上的字符串将返回数组的内存地址。这就是您显示的在代码是k.toString()?我应该永远不要在char数组中调用toString方法吗?
这不能回答这两个问题。这不能编译。为什么这里的down投票是出于兴趣?可能是因为我在用python思考,省略了新的运算符。我的错误。修复了。不清楚OP是否真正想要这样做,也没有回答关于wh的问题ytoString()
执行它在数组中调用时的操作。此代码中到底发生了什么k.toString()?我是否应该永远在字符数组中调用toString方法?
这不会回答这两个问题这假设用户想要“['k','k]”作为输出。如果他们想要“kk”,则需要使用字符串构造函数获取字符数组。