有关复制数组的功能 的问题arraycopy
为什么 用char 可以复制数组用String 就不行了啊
char copyfrom[]={'a','b','c','d','e'};
char copyto[]=new char[2];
System.arraycopy(copyfrom,1,copyto,0,2);
System.out.println(new String (copyto));
这个有结果
也下面这个却没有结果啊
String copyfrom[]={"aba","ddb","dddc","ffffd","gggge"};
String copyto[]=new String[2];
System.arraycopy(copyfrom,1,copyto,0,2);
System.out.println(copyto);
问题点数:20、回复次数:10Top
1 楼lliushine(小明)回复于 2006-05-29 14:31:53 得分 0
System.out.println(new String (copyto));显示的是copyto的值,
System.out.println(copyto);显示的是copyto的地址.
Top
2 楼kele2536(可乐)回复于 2006-05-31 00:44:06 得分 0
但是改成System.out.println(new String (copyto));
编译就会有错误啊 ???
哪位大虾知道是为什么吗?Top
3 楼young0x()回复于 2006-05-31 01:00:50 得分 0
for (int i=0;i<copyto.length;i++)
System.out.println(copyto[i]);
Top
4 楼LordSimon(lordsimon@x.cn)回复于 2006-06-04 20:45:17 得分 0
copyto要在C里就可以被认为是指向指针的指针了。。。也就是说,它引用的是数组的首地址。在没有提供便宜的情况下访问当然不行啦Top
5 楼LordSimon(lordsimon@x.cn)回复于 2006-06-04 20:45:52 得分 0
写错了,便宜 改为 偏移。。。呵呵Top
6 楼bandittalent()回复于 2006-06-04 21:53:28 得分 0
System.arraycopy(copyfrom,1,copyto,0,2);
你只要试试能不能println(copyfrom);就知道能不能搞定println(copyto)Top
7 楼rainbow_ayst(口丁拉瓦)回复于 2006-06-04 23:01:45 得分 0
1.5打印数组现在可以这样了
System.out.println(Arrays.toString(str[]));Top
8 楼supergoalcn(Supergoal)回复于 2006-06-08 11:19:48 得分 0
同意楼上的,1.5之前只能通过循环来打印数组。Top
9 楼navence(卡西C)回复于 2006-06-13 21:14:26 得分 0
1.4可以这么打印
System.out.println(Arrays.asList(str));Top
10 楼big0bike()回复于 2006-07-07 16:26:06 得分 0
你的程序改为:
String copyfrom[]={"aba","ddb","dddc","ffffd","gggge"};
String copyto[]=new String[2];
System.arraycopy(copyfrom,1,copyto,0,2);
for( int i = 0 ; i < 2 ; i++ ) {
System.out.println( copyto[i] ) ;
}
说明如下:
1. copyto是 String 的数组, copyto本身记录的是一个地址;
如果想要用里面存储的String, 必须用copyto[ index ] ;
2. 改成System.out.println(new String (copyto)) :
这样也不行的,原因如上.
new String( arg ) 里面的参数需要是String或者能够转换成String的类型,
而这里是一个数组, 所以导致一个compile-error.Top




