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

时间:2013-02-10 11:00:11

标签: java android

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

如果您可以解决我的代码问题,我需要您的帮助。实际上我正在尝试将数组变量的值赋给另一个数组变量。但我不能这样做,因为有一些错误。所以,你能帮助我吗??

5 个答案:

答案 0 :(得分:3)

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

String[] msgoptions = new String[SIZE];

答案 1 :(得分:1)

将您的代码重写为:

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);

答案 2 :(得分:0)

试试:

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]);
}

答案 3 :(得分:0)

Java已经允许以多种方式进行Array复制。

您可以查看以下链接:http://www.javapractices.com/topic/TopicAction.do?Id=3

答案 4 :(得分:0)

首先,在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)