2017-07-15 96 views
-1

由於某些原因,我不明白,我得到一個數組越界在數組越界使用string.split

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"); 
}; 
+0

可能是你的'sp'不包含任何值或不包含',' – Blasanka

+1

的[可能的複製什麼原因導致的java.lang .ArrayIndexOutOfBoundsException和我如何防止它?](https://stackoverflow.com/questions/5554734/what-c​​auses-a-java-lang-arrayindexoutofboundsexception-and-how-do-i-prevent-it) – Blasanka

回答

0

檢查數組長度:

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