使用string.split时,数组超出范围

时间:2017-07-15 04:13:08

标签: java arrays split do-while

由于某种原因,我不明白,我在

的界限中出了一个阵列

String ans1 = inputs [1]; 此代码的目的是通过将单个输入字符串拆分为多个部分并将它们分别添加到输入和输出数组来向2个不同的数组添加问题和答案。我知道数组的界限是什么,我只是不明白为什么分裂不正常。

sl=tf.getText();     
boolean tempsave = false;
if (sl.equalsIgnoreCase("!tempadmin"))
{
int ends = sIndata.length;
int endss = resdata.length;
int endends =0;
int endendss =0;
    ta.append("adding options\n");
    do{
       String sp = tf.getText();
       if (sl.equalsIgnoreCase("kill"))
               {
                   tempsave = true;
               };
        String [] inputs = sp.split(";");
        String qs1 = inputs[0];
        String ans1 = inputs[1];
        String[] qs2= qs1.split(":");
        String[] ans2= ans1.split(":");
        for (int qusilada = 0; qusilada != qs2.length; qusilada++){
        sIndata[ends + 1][endends + qusilada] = qs2[qusilada];
        resdata[endss + 1][endendss + qusilada] = ans2[qusilada];        
                ends++;
                endss++;
       }
                sp = "";
    }while (tempsave == false);
    ta.append("tempadmin closed");
};

1 个答案:

答案 0 :(得分:0)

在计算索引值之前检查数组长度:

String [] inputs = sp.split(";");
    String qs1 = "";
    String ans1 = "";
    if(inputs.length>1){
       qs1 = inputs[0];
       ans1 = inputs[1];
    }