我遇到了组合数组值的问题。我想组合一个数组的两个值来为另一个数组创建一个值。这是我的代码:
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];
无效。
答案 0 :(得分: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。
答案 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