for(int i=0;i<cs.length;i++)
{
System.out.print(cs[i]);
}
s=cs.toString();
System.out.println(cs);前一结果是:gfedcba
后一结果是:[C@12498b5
char[]不能用toString()转换为String类型吗?为什么输出不一样呢?
请高手指教一下toString()的用法!
{
System.out.print(cs[i]);
}
s=cs.toString();
System.out.println(cs);前一结果是:gfedcba
后一结果是:[C@12498b5
char[]不能用toString()转换为String类型吗?为什么输出不一样呢?
请高手指教一下toString()的用法!
System.out.println(cs);
改为
s=cs.toString();
System.out.println(s); 吧其次,因为数组是object,所以你调用的toString()方法是object的方法,自然而然出这个结果了关于object的toString()方法,如下
getClass().getName() + '@' + Integer.toHexString(hashCode())
如果你想输出里面的所有值,可以用java.util.Arrays.toString(cs);
默认情况下输出 类名@地址。
不过子类可以覆盖这个方法。返回对该类的一种描述。
如:
class User{
String name ;
int age; public String toString()
{
return "name:"+name+" age:"+age
}}当输出 user对象的时候就可以 输出你的描叙信息。
PrintStream类实现了#print(char[])方法,将数组中的字符打印出来。而数组直接继承了Object的#toString方法,内容是:
getClass().getName() + "@" + Integer.toHexString(hashCode());不过呢,你的程序应该是都打印gfedcba才对。因为你的第二句是
System.out.println(cs);
如果是
System.out.println(s);
就是你说的结果了
顺便问一下,我怎么才能把cs转换为字面值和产生相同String类型呢?就是让s能输出gfedcba
System.out.println(s);