0

我遇到了组合数组值的问题。我想组合一个数组的两个值来为另一个数组创建一个值。这是我的代码:

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 注意:假设candidatecandid

更新 :

根据 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

不知道你想要 Candidate.length 代表什么,但这是我尝试过的,它似乎有效:

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 回答