2015-07-03 18 views
-1

以下程序導致ArrayIndexOutOfBoundsException。我有兩個陣列s1s2刪除ArrayIndexOutOfBoundsException

代碼:

/* IMPORTANT: class must not be public. */ 


import java.io.BufferedReader; 
import java.io.InputStreamReader; 

class TestClass { 
    public static void main(String args[]) throws Exception { 


    BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
    String s1="",s2=""; 
    int c=0,a=0; 

      int T = Integer.parseInt(br.readLine()); 
     while(T-->0) 
     { 
      s1=br.readLine(); 
      String ars1[]=s1.split(" "); 
      int N=Integer.parseInt(br.readLine()); 
      while(N-->0) 
      { 
       s2=br.readLine(); 
       String ars2[]=s2.split(" "); 

       for(int i=0;i<ars1.length;i++) 
       { 
        for(int j=0;j<ars2.length;j++) 
        { 
         if(ars2[i]==ars1[j]) 
         { 
          c++; 
          continue; 
         } 
        } 
       } 
       if(c==ars1.length) 
       a++; 
      } 
     } 

     System.out.println(a); 
    } 
} 

如何解決呢?

+1

ars2 [i] == ars1 [j]應該是ars2 [j] == ars1 [i] – skandigraun

回答

1

由於@skandigraun曾在評論中指出,

在,

for(int i=0;i<ars1.length;i++) 
       { 
        for(int j=0;j<ars2.length;j++) 
        { 
         if(ars2[i]==ars1[j]) 
         { 
          c++; 
          continue; 
         } 
        } 
       } 

ars2[i] == ars1[j]似乎是不正確的,你不能確定的指數範圍這些陣列的的。

這裏i對應於ars1j的計數器對應於ars2的計數器。

交換它們應該擺脫異常

相關問題