0

配列値の結合で問題が発生しました。配列の 2 つの値を結合して、別の配列の値を作成したいと考えています。これが私のコードです:

String [] candid = {"A","B","C","D","E"};

String [] candidates = new String[candid.length];
        for (int i=0;i<candid.length;i++){
            candidates[i] = candid[i]+","+candid[i+1];
        }

しかし、コマンドcandidates[i] = candid[i]+","+candid[i+1];は機能していません。

4

2 に答える 2

2

candidatesあなたは次のように宣言したいかもしれません

String [] candidates = new String[candid.length-1];

Ps 注: と仮定するcandidateと、candid

アップデート :

OPのコメントに従ってcandidates、に初期化されます

 String [] candidates = new String[candid.length]//Length of candid is used in the 
 question

したがって、初期分析は真であり、コードはArrayIndexOutOfBoundsException最後の要素、つまり に対して生成されi+1ます。

これが発生する理由は、配列に要素が 6 つしかなく、要素i is 6 the elementにアクセスしようとしている場合です7 th。配列インデックスは、私が審判している場所の -1 です。したがって、長さが 5 の場合、6 にアクセスしようとしています。

于 2012-10-01T04:08:03.587 に答える
1

あなたが候補者.長さを何の略にしたいのか分かりませんが、これは私が試したもので、うまくいくようです:

public static void main(String[] args) {
    String[] candid = { "A", "B", "C", "D", "E" };
    String[] candidates = new String[candid.length-1];
    for (int i = 0; i < candid.length-1; i++) {
        candidates[i] = candid[i] + "," + candid[i + 1];
    }
    for (String s : candidates) {
        System.out.println(s);
    }
}

「candidate.length」を「candid.length-1」に置き換え

出力結果は次のとおりです。

A,B
B,C
C,D
D,E

于 2012-10-01T04:15:40.500 に答える