Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用string.split时数组超出边界_Java_Arrays_Split_Do While - Fatal编程技术网

Java 使用string.split时数组超出边界

Java 使用string.split时数组超出边界,java,arrays,split,do-while,Java,Arrays,Split,Do While,出于某种我不明白的原因,我得到了一个超出边界的数组 字符串ans1=输入[1]; 这段代码的目的是通过将单个输入字符串拆分为多个部分,将问题和答案添加到2个不同的数组中,并分别添加到输入和输出数组中。我知道什么是数组越界,我只是不明白为什么拆分不能正常工作 sl=tf.getText(); boolean tempsave = false; if (sl.equalsIgnoreCase("!tempadmin")) { int ends = sIndata.length; int e

出于某种我不明白的原因,我得到了一个超出边界的数组

字符串ans1=输入[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");
};

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

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

可能是您的
sp
未包含任何值或未包含
可能重复的