2017-07-16 12 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]を使用しようとしましたが、同じエラーです!私はループのwhile文字列としてstr2を宣言する必要がありますか? – user1788736

+0

CharArray [toCharArray.length - 1]に変更した後にコードを実行しても問題ありません。コードを変更した後に再コンパイルしましたか? –

0

私はあなたがループ内で使用するインデックスがiとないtoCharArrayであると信じています。

toCharArray [toCharArray.length]は、配列の範囲が0からlength-1になるため、常に例外をスローします。

関連する問題