Java 使用string.split时数组超出边界
出于某种我不明白的原因,我得到了一个超出边界的数组 字符串ans1=输入[1]; 这段代码的目的是通过将单个输入字符串拆分为多个部分,将问题和答案添加到2个不同的数组中,并分别添加到输入和输出数组中。我知道什么是数组越界,我只是不明白为什么拆分不能正常工作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
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
未包含任何值或未包含代码>可能重复的