鱼C论坛

 找回密码
 立即注册
查看: 2594|回复: 2

[已解决]萌新问题 getChars和toCharArray

[复制链接]
发表于 2020-4-24 14:12:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 zxq01 于 2020-4-29 16:32 编辑
public static void main(String[] args) {
                // TODO Auto-generated method stub
                String s1=new String( );
            char data[ ]={ 'a', 'b', 'c', 'd', 'e', 'f'};
            s1=s1.copyValueOf(data);
            System.out.println(" s1="+s1);
            s1=s1.copyValueOf(data,2,3);
            System.out.println(" s1="+s1);
            s1.getChars(1,2, data,0);
            System.out.println(" data="+data);
            data=s1.toCharArray( );
            System.out.println(" data="+data);
            String s2=new String( );
            String s3=new String( );
            s2=s1.substring(0);
            System.out.println(" s2="+s2);
            s3= s1.substring(1,2);
            System.out.println(" s3="+s3);

        }

结果为什么是s1=abcdef   data=[C@18a992f  data=[C@4f1d0d s2=abcdef s3=b
最佳答案
2020-4-24 15:31:34
本帖最后由 倒戈卸甲 于 2020-4-24 15:54 编辑

这个要彻底弄清楚,你得阅读打印流的源码,它会把传入的参数转换成字符串再做打印。你可以先记几个结论:全部普通数据类型打印流都重载了对应的成员方法,所以普通数据类型全部可以打印出内容。对于引用数据类型,首先字符串总是会打印内容,因为有其重载形式;其次集合重写了toString方法,也能打印出内容;而如果传入字符数组(只传入数组名这一个变量,不能有拼接之类的操作),因为打印流同样有此重载形式的方法,也能打印内容。但其它类型的数组,因为没有对应的重载形式,只会打印出传入的变量的地址。对于重写了toString方法的对象,会按照重写后的方法来打印,没有则按照默认的toString方法来打印(结果也是打印变量的地址)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-24 15:31:34 | 显示全部楼层    本楼为最佳答案   
本帖最后由 倒戈卸甲 于 2020-4-24 15:54 编辑

这个要彻底弄清楚,你得阅读打印流的源码,它会把传入的参数转换成字符串再做打印。你可以先记几个结论:全部普通数据类型打印流都重载了对应的成员方法,所以普通数据类型全部可以打印出内容。对于引用数据类型,首先字符串总是会打印内容,因为有其重载形式;其次集合重写了toString方法,也能打印出内容;而如果传入字符数组(只传入数组名这一个变量,不能有拼接之类的操作),因为打印流同样有此重载形式的方法,也能打印内容。但其它类型的数组,因为没有对应的重载形式,只会打印出传入的变量的地址。对于重写了toString方法的对象,会按照重写后的方法来打印,没有则按照默认的toString方法来打印(结果也是打印变量的地址)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-24 16:10:09 From FishC Mobile | 显示全部楼层
我这说的有些啰嗦了,等你学习了java的基类Object,知道所有java对象都会继承其toString方法后,自然会明白其中原理
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 01:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表