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()的用法!

解决方案 »

  1.   

    首先,s=cs.toString(); 
    System.out.println(cs); 
    改为
    s=cs.toString(); 
    System.out.println(s); 吧其次,因为数组是object,所以你调用的toString()方法是object的方法,自然而然出这个结果了关于object的toString()方法,如下
    getClass().getName() + '@' + Integer.toHexString(hashCode())
      

  2.   

    数组的toString输出就是 [  + 类型 + @ + hashCode的
    如果你想输出里面的所有值,可以用java.util.Arrays.toString(cs);
      

  3.   

    toString 是object 类的一个方法。
    默认情况下输出 类名@地址。
    不过子类可以覆盖这个方法。返回对该类的一种描述。
    如:
    class User{
       String name ;
       int age;   public String toString()
      {
         return "name:"+name+" age:"+age
      }}当输出 user对象的时候就可以 输出你的描叙信息。
      

  4.   

    你看看Java API Doc里面Object类的toString()方法的定义就知道了。
      

  5.   

    你可以看看它们的实现代码。System.out.print(cs);
    PrintStream类实现了#print(char[])方法,将数组中的字符打印出来。而数组直接继承了Object的#toString方法,内容是:
    getClass().getName() + "@" + Integer.toHexString(hashCode());不过呢,你的程序应该是都打印gfedcba才对。因为你的第二句是
    System.out.println(cs);
    如果是
    System.out.println(s);
    就是你说的结果了
      

  6.   

    初学java,不太懂.谢各位高手了!
      

  7.   

    回复5楼:不好意思,我写错了,确实是System.out.println(s);
    顺便问一下,我怎么才能把cs转换为字面值和产生相同String类型呢?就是让s能输出gfedcba 
      

  8.   

    String s = new String(cs);
    System.out.println(s);