如何将一个数组变量的值赋给另一个数组变量

问题描述:

String[] msgoptions; 
String[] finalmsgs3 = finalmsgs2[3].split("RR"); 
for(i = 1; i < finalmsgs3.length; i++) 
{ 
    msgoptions[i] = finalmsgs3[i]; 
    Log.e(TAG, "---------------" + msgoptions[i]); 
} 

如果你能解决我的代码问题,我需要你的帮助。其实我试图将数组变量的值分配给另一个数组变量。但我不能那样做,因为有一些错误。那么,你能帮我吗?如何将一个数组变量的值赋给另一个数组变量

+1

你什么错误的东西更“标准”? – BobTheBuilder 2013-02-10 11:05:21

重写你的代码:

String[] finalmsgs3 = finalmsgs2[3].split("RR");  // switch first two lines 
String[] msgoptions = new String[finalmsgs3.length]; // initilize the other array 
for(i = 0; i < finalmsgs3.length; i++)    // Array index starts at 0 
{ 
    msgoptions[i] = finalmsgs3[i]; 
    Log.e(TAG, "---------------" + msgoptions[i]); 
} 

更好的解决方案是:

String[] finalmsgs3 = finalmsgs2[3].split("RR"); 
String[] msgoptions = Arrays.copyOf(finalmsgs3, finalmsgs3.length); 

试一下:

String[] msgoptions = = new String[SIZE];; 
String[] finalmsgs3 = finalmsgs2[3].split("RR"); 
int j=0; 
for(i = 0; i < finalmsgs3.length; i++) 
{ 
    msgoptions[j] = finalmsgs3[i]; 
    j++; 
    Log.e(TAG, "---------------" + msgoptions[i]); 
} 

的Java已经允许阵列复制在几个方面。

你可以看看这个链接:http://www.javapractices.com/topic/TopicAction.do?Id=3

你需要在使用前数组msgoptions初始化,例如:

String[] msgoptions = new String[SIZE]; 

首先,在Java上,您需要初始化阵列。另请注意,它们基于0个索引。

所以,你应该更改您的代码是这样的:

String[] finalmsgs3 = finalmsgs2[3].split("RR"); 
String[] msgoptions = new String[finalmsgs3.length]; 
for(int i = 0; i < finalmsgs3.length; i++) 
{ 
    msgoptions[i] = finalmsgs3[i]; 
    Log.e(TAG, "---------------" + msgoptions[i]); 
} 

但要做到阵列复制你能避免你的代码使用像java.util.Arrays.copyOf(T[] original, int newLength)