2017-07-16 90 views
-2

任何人都可以幫我解決這個異常錯誤嗎?在此先感謝。如何解決線程「main」java.lang.ArrayIndexOutOfBoundsException錯誤中的異常?

錯誤:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 13 
    at HelloWorld.main(HelloWorld.java:13) 

錯誤在這條線指向:

String str2 = str + (toCharArray[toCharArray.length] + String.valueOf(i)); 

Java代碼:

import java.util.Calendar; 

import java.util.TimeZone; 

public class HelloWorld { 
    public static void main(String[] args) { 
    //System.out.println("Hello World"); 
     char[] toCharArray = String.valueOf((Calendar.getInstance(TimeZone.getTimeZone("utc")).getTimeInMillis() + 1825)^16842788).toCharArray(); 
     String str = ""; 
     //String str2 = ""; 
     int i = 0; 
     while (i < toCharArray.length) { 
      String str2 = str + (toCharArray[toCharArray.length] + String.valueOf(i)); 
      i++; 
      str = str2; 
     } 

     System.out.println("value of str:"); 
     System.out.println(str); 
    } 
} 
+0

如果將錯誤行更改爲字符串str2 = str +(toCharArray [toCharArray.length-1] + String.valueOf(i));異常將消失。但答案將是所有數字(如果這是你想要的)。 – Pramod

回答

0

數組的索引是0爲主。您正嘗試訪問不存在的元素。如果你想獲得最後一個元素,你應該如下所示。

toCharArray [toCharArray.length - 1]

+0

感謝您的回覆。我嘗試使用toCharArray [toCharArray.length - 1]但仍然是相同的錯誤!我應該聲明str2作爲字符串外循環嗎? – user1788736

+0

我更改爲CharArray [toCharArray.length - 1]後運行代碼,它工作正常。更改代碼後是否重新編譯了? –

0

我相信你想在循環中使用的索引是我,而不是toCharArray。

toCharArray [toCharArray.length]將始終拋出異常,因爲數組的範圍從0變爲1。

相關問題