2012-10-01 85 views
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];不起作用。

+3

该行连接两个“字符串”。如果您显示输入和输出样本,这将非常方便。 –

+2

什么是候选人? –

+2

“不工作”是什么意思?您可以点击帖子左下方的“修改”以随时更新。 –

回答

2

你可能想声明candidates作为

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

诗注:假设candidatecandid

更新:

按OP的评论candidates被初始化为

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

所以初始分析成立,代码将生成ArrayIndexOutOfBoundsException最后一个元素,即i+1

发生这种情况的原因是阵列中只有6个元素,并且当您尝试访问7 th元素时i is 6 the element。数组索引是我正在裁判的地方的-1。所以,如果长度为5您试图访问6

+1

我们不一定*知道这是真的。 '候选人'可能总是长度为4 ... –

+0

有'String []坦率'所以循环可以*正确*(当且仅当'candid.length

+0

Err。更正了答案。 –

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); 
    } 
} 

替换“候选人。长度”与 “candid.length-1”

输出结果:

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

+0

我忘了用坦诚替换候选人。但是,你的代码是可行的。谢谢你的帮助。 – diyana