连接数组的两个元素以创建新的数组元素

时间:2012-10-01 04:04:16

标签: java arrays string-concatenation

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

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];无效。

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分: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