String[] msgoptions;
String[] finalmsgs3 = finalmsgs2[3].split("RR");
for(i = 1; i < finalmsgs3.length; i++)
{
msgoptions[i] = finalmsgs3[i];
Log.e(TAG, "---------------" + msgoptions[i]);
}
如果您可以解决我的代码问题,我需要您的帮助。实际上我正在尝试将数组变量的值赋给另一个数组变量。但我不能这样做,因为有一些错误。所以,你能帮助我吗??
答案 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)