2015-07-13 38 views
-5

我有一個String = "abc model 123 abcd1862893007509396 abcd2862893007509404",如果我提供的空間之間abcd1 & number例如。 abcd1 862893007509396我的代碼將正常工作,但如果有喜歡的abcd1862893007509396沒有空間,我會得到java.lang.ArrayIndexOutOfBoundsException,請幫助:?java.lang.ArrayIndexOutOfBoundsException:

PFB代碼:

String text = ""; 
final String suppliedKeyword = "abc model 123 abcd1862893007509396 abcd2862893007509404"; 
String[] keywordarray = null; 
String[] keywordarray2 = null; 
String modelname = ""; 
String[] strIMEI = null; 

if (StringUtils.containsIgnoreCase(suppliedKeyword,"model")) { 
    keywordarray = suppliedKeyword.split("(?i)model"); 

    if (StringUtils.containsIgnoreCase(keywordarray[1], "abcd")) { 
     keywordarray2 = keywordarray[1].split("(?i)abcd"); 
     modelname = keywordarray2[0].trim(); 

     if (keywordarray[1].trim().contains(" ")) { 
      strIMEI = keywordarray[1].split(" "); 
      for (int i = 0; i < strIMEI.length; i++) { 
       if (StringUtils.containsIgnoreCase(strIMEI[i],"abcd")) { 
        text = text + " " + strIMEI[i] + " " 
          + strIMEI[i + 1]; 
        System.out.println(text); 
       } 
      } 
     } else { 
      text = keywordarray2[1];    
     } 
    } 
} 
+10

*「請幫助」* - 請提供一個[可運行的示例](https://stackoverflow.com/help/mcve),它演示了您的問題。這不是代碼轉儲,而是您正在做的事情的一個例子,它突出了您遇到的問題。這將導致更少的混亂和更好的反應 – MadProgrammer

+1

請張貼拋出異常的代碼 – hermit

+0

我重視啞代碼 – sparsh

回答

0

看你的代碼,我可以的嘛後考慮誤差的原因是

if (StringUtils.containsIgnoreCase(strIMEI[i],"abcd")) { 
    text = text + " " + strIMEI[i] + " " 
    + strIMEI[i + 1]; 
    System.out.println(text); 
} 

您試圖訪問strIMEI [I + 1]如果您strIMEI最後一個元素包含「ABCD」,這將拋出一個錯誤。

+0

真的,我需要一個解決方案來解決這個例外 – sparsh

+0

是的,我從哪裏錯誤就要知道,需要改變相同的代碼 – sparsh

+0

@sparsh在那種情況下,你必須通過確保strIMEI中的lsat元素不應該包含abcd或者直到strIMEI.length-1在你的循環中來防止這個錯誤 – Vishnu

相關問題