Java 字符串到字符数组和字符数组到字符串的转换
在我的程序中,我从数据库结果集中获取一个字符串,并将其转换为char数组,如下所示:Java 字符串到字符数组和字符数组到字符串的转换,java,Java,在我的程序中,我从数据库结果集中获取一个字符串,并将其转换为char数组,如下所示: emp.nid = rs.getString("nid").toCharArray(); nid_txt.setText(emp.nid.toString()); nid_txt.setText(new String(emp.nid)); 这一部分没有错误。字符串已成功转换为字符数组。 但我有另一个类似这样的代码: emp.nid = rs.getString("nid").toCharArray();
emp.nid = rs.getString("nid").toCharArray();
nid_txt.setText(emp.nid.toString());
nid_txt.setText(new String(emp.nid));
这一部分没有错误。字符串已成功转换为字符数组。
但我有另一个类似这样的代码:
emp.nid = rs.getString("nid").toCharArray();
nid_txt.setText(emp.nid.toString());
nid_txt.setText(new String(emp.nid));
这打印了一些奇怪的文本。不是原来的。为什么会这样?请帮帮我。您正在调用
char[]
上的toString
,这继承了对象的实现,因此您得到char[].class
名称,然后是对象的散列。相反,调用字符串(char[])
构造函数:
nid_txt.setText(new String(emp.nid));
之所以会出现这种情况,是因为toString()
方法是对象的字符串表示,而不是它所包含内容的字符串
试着这样做:
emp.nid = rs.getString("nid").toCharArray();
nid_txt.setText(emp.nid.toString());
nid_txt.setText(new String(emp.nid));
您正在对数组对象调用toString()。尝试:
new String(emp.nid);
您应该会看到更好的结果。假设emp.nid是字节数组,那么第二句话就完全错了。此类对象中的toString()方法将不起作用。尝试根据字节数组创建新字符串:
String s = new String(emp.nid);
nid_txt.setText(s);
如果您已经阅读了toString()方法的描述,那么您就可以解决这个问题,而不是foo.toString()
donewstring(foo)
!如果有帮助的话,你应该投票赞成:-)并接受最有帮助的答案。谢谢你-这让我头痛不已!