2017-07-15 9 views
-1

何らかの理由で私が理解できないため、範囲外の配列を取得していますstring.splitを使用しているときに配列が範囲外になっています

文字列ans1 = inputs [1]; このコードの目的は、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'は、任意の値が含まれていなかったか'含まれていなかったことができ、java.langでの原因は何[の ' – Blasanka

+1

可能な重複.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]; 
    } 
関連する問題