字符串转字符数组和字符数组转字符串转换

4
在我的程序中,我从数据库结果集中获取一个字符串,并将其转换为字符数组,如下所示:
emp.nid = rs.getString("nid").toCharArray();

在这部分中没有错误。字符串已成功转换为字符数组。 但是我有另一段类似的代码:
nid_txt.setText(emp.nid.toString());

这会打印出一些奇怪的文本。不是原始的。为什么会发生这种情况?请帮忙。


如果你读过toString()方法的描述,你就会明白这个问题的答案! - Cassio
5个回答

9
你正在对一个char[]对象调用toString方法,由于char[]继承了Object类,因此你会得到char[].class名称、@符号和对象的哈希值。相反,你应该调用String(char[])构造函数:
nid_txt.setText(new String(emp.nid));

谢谢 - 这让我很头疼! - gavz

4
这是因为toString()方法是对象的字符串表示,而不是它所包含内容的字符串。尝试这样做:
nid_txt.setText(new String(emp.nid));

2

foo.toString() 改为 new String(foo)


如果这篇文章对你有帮助,你应该点赞并接受最有用的答案。 - Michał Šrajer

1

你正在对数组对象调用toString()函数。请尝试使用以下代码:

new String(emp.nid);

你应该会看到更好的结果。


1
假设emp.nid是字节数组,第二句话完全错误。这种对象中的toString()方法不起作用。相反,尝试基于字节数组创建新的字符串:
String s = new String(emp.nid);
nid_txt.setText(s);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接