黑马程序员技术交流社区

标题: String 类型输出为什么输出了内存地址而不是字符串? [打印本页]

作者: 随风永夜    时间: 2015-4-12 11:30
标题: String 类型输出为什么输出了内存地址而不是字符串?
import java.util.Arrays;

class Demo{
        public static void main(String args[]){
                String s1="vczbdacs";
                jisuan(s1);
               
               
        }
        public static void sop(String str){
                System.out.println(str);
        }
        public static void jisuan(String s1){               
                char ch[]=s1.toCharArray();
               
                Arrays.sort(ch);
                sop(ch.toString());
                /*
                for(int x=0;x<ch.length;x++){
                        System.out.print(ch[x]);
                }
                */
        }
}
作者: leonard    时间: 2015-4-12 12:58
sop(ch.toString());
这里的toString();方法是object中的方法,返回的是该调用对象的地址值字符串。
应该使用arrays中的toString方法。如:Arrays.toString(ch);
作者: liyanghml    时间: 2015-4-12 18:46
本帖最后由 liyanghml 于 2015-4-12 18:57 编辑

楼上正解,Arrays.toString()  和 String的toString()  要区分开
作者: liurongzhi1991    时间: 2015-4-12 20:28
不懂·``````````````
作者: Fruious    时间: 2015-4-12 20:30
楼上正解!
作者: z小怪兽    时间: 2015-4-12 20:47
String类的变量引用的是对象的内存地址,属于引用类型变量,打印输出的话就是内存地址值
作者: 随风永夜    时间: 2015-4-14 15:06
数组都只是地址  谢谢了。
作者: sisel    时间: 2015-4-14 15:23
可以使用 new String(ch)
作者: lf027    时间: 2015-4-14 22:20
我也直接纠结这个问题,toString()方法
作者: 燕赵之风    时间: 2015-4-15 10:17
涉及到数组转变字符串的可以用数组的工具类Arrays.toString,此工具类专门用于将其他类型的数组转变为字符串。
同时toString方法是针对类的实例对象使用的。

作者: MartinYu    时间: 2016-7-7 18:12
不懂,看不懂




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2