java 中如何把一个string数组原封不动的赋给另外一个string数组[]

说白了就是克隆一个!!!... 说白了就是克隆一个!!! 展开
 我来答
zfloveng
推荐于2018-05-06 · TA获得超过165个赞
知道答主
回答量:102
采纳率:0%
帮助的人:94.1万
展开全部
楼上的方法System.arraycopy(src, pos, dst, pos, length); 是对的
但太简单了哈,自己试了才知道里面参数分别是什么
scr:原数组名
pos:开始复制的原数组的下标
dst:目的数组名
pos:开始接收的目的数组的下标
length:要复制的数组长度,如果这个长度大于了原数组从开始复制数到最后数的数目或目的数组开始接收数到最后数的长度的话会报错的哦~
说得有点复杂哈,举个例子吧:
public class test
{
public static void main(String args[])
{
String s1[]={"1","2","3","4","5","6"};
String s2[]=new String[6];
System.arraycopy(s1,1,s2,2,4);
for(int i=0;i<s1.length;i++)
System.out.println(s2[i]);
}
}
其中System.arraycopy(s1,1,s2,2,4);中的4不要大于6-2或6-1,即是要小于等于4了;其结果输出就是
null
null
2
3
4
5
OK,就说这么多了,如果是完全克隆的话,那当然就是
System.arraycopy(s1,0,s2,0,6);
子敬谈情
2020-02-18
知道答主
回答量:31
采纳率:0%
帮助的人:2.8万
展开全部
楼上的arraycopy是完全可以的,这里我想展开说arraycopy的源代码情况,arraycopy其实就是java的一个封装方法。我们知道的,s1[]=s2这个写法是错误的,因为这两个还是共用的一个地址。正确的应该是在堆空间中先new一个数组s2,然后用循环,依次把s1的元素赋值给s2,换成代码形式如下:
public class copy{
public static void main(String[] args){
int[] s1 = {1,2,3,4};
int[] s2 = new int[s1.length];
for(int i = 0,i<=s1.length;i++){
s2[i] = s1[i];



已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pppeee9
2009-03-24 · TA获得超过388个赞
知道小有建树答主
回答量:241
采纳率:0%
帮助的人:141万
展开全部
System.arraycopy(源数组名, 字符串开始复制位置, 目的数组名, 字符串粘贴位置, 需要复制的字符串长度);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hkliya
2009-03-24 · TA获得超过787个赞
知道小有建树答主
回答量:578
采纳率:0%
帮助的人:417万
展开全部
System.arraycopy(src, pos, dst, pos, length);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式