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

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

4

4 回答 4

3

使用前需要对数组进行初始化msgoptions,例如:

String[] msgoptions = new String[SIZE];
于 2013-02-10T11:05:31.967 回答
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);
于 2013-02-10T11:10:16.957 回答
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]);
}
于 2013-02-10T11:03:01.377 回答
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)

于 2013-02-10T11:12:42.857 回答