java.lang.ArrayIndexOutOfBoundsException: 3 Fehler

Habe ich das folgende Stück code, für die bin ich immer java.lang.ArrayIndexOutOfBoundsException

//divides ACode by 10 as many times as specified by the DecimalDigitPosition 
public static int getDecimalDigit(int ACode, int decimalDigitPosition) {
    if (decimalDigitPosition == 0)
        return ACode;
    else {
        ACode = ACode / (10 * decimalDigitPosition);
        int remainder = ACode % 10;
        return remainder;
    }
}

Ich bin zu Ahnen dieser Linie...

digit[i] = getDecimalDigit(samples[i].getValue(), 0);

in der folgenden code könnte das der Grund für diese Ausnahme.

//start a method to decode the message.
public static void decodeMessage(String filename) {
    Sound s = new Sound(filename);
    SoundSample[] samples = s.getSamples();
    int[] digit = new int[3];
    String message = "";
    int sampleIndex = 0;
    boolean nullReached = false;
    while (!nullReached) {
        int asciiValue = 0;
        for (int i = sampleIndex; i < sampleIndex + 3; i++) {
            if (i < samples.length) {
                //this line could be the cause of error..
                digit[i] = getDecimalDigit(samples[i].getValue(), 0);
                asciiValue += digit[i - sampleIndex] * (((i - sampleIndex) == 0) 
                ? 1 
                : ((i - sampleIndex) * 10));
            } else {
                for (int j = 0; j < 3; j++) {
                    digit[j] = 0;
                }
                break;
            }
        }
        if (digit[0] == digit[1] 
        && digit[1] == digit[2] 
        && digit[2] == 0) 
        nullReached = true;
        message += (char) asciiValue;
    }
}

Stack trace:

java.lang.ArrayIndexOutOfBoundsException: 3 at
Projekt.decodeMessage(Projekt.java:107) an
Projekt.main(Projekt.java:33) at
Sonne.reflektieren.NativeMethodAccessorImpl.invoke0(Native Method) at
Sonne.reflektieren.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
bei
Sonne.reflektieren.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
bei java.lang.reflektieren.Methode.invoke(Method.java:597) at
edu.Reis.cs.drjava.Modell.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)
>

  • Welche Linien werfen diese Fehler? Kannst du den stacktrace?
  • Wenn Sie denken, dass das problem durch einen bestimmten Abschnitt des Codes, ist es normalerweise am besten, nur um diesen Teil 🙂
  • Hier ist der Fehlercode: java.lang.ArrayIndexOutOfBoundsException: 3 at Projekt.decodeMessage(Projekt.java:107) im Projekt.main(Projekt.java:33) at sun.reflektieren.NativeMethodAccessorImpl.invoke0(Native Method) bei sun.reflektieren.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflektieren.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflektieren.Methode.invoke(Method.java:597) at edu.Reis.cs.drjava.Modell.compiler.JavacCompiler.runCommand(JavacCompiler.java:272) >
  • und Tyler, du hast Recht haha ich bin mir nicht denken. Bearbeiten von code jetzt
InformationsquelleAutor chlc | 2014-05-02
Schreibe einen Kommentar