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 に答える