Array – die besten Beiträge

Java: Wieso bekomme ich diesen Fehler ("ArrayIndexOutOfBoundsException: Index 9 out of bounds for length 9")?

Bei meinem Code kommt nach der Eingabe eines Wortes immer folgender Fehler.

Das ist alles von der Konsole:

Bitte geben Sie ein Wort für das B-Sprachen Spiel ein: Hallo
5
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 9 out of bounds for length 9
at B_SprachenSpiel/Lektion_7.B_SprachenSpiel.Spiel(B_SprachenSpiel.java:42)
at B_SprachenSpiel/Lektion_7.B_SprachenSpiel.main(B_SprachenSpiel.java:14)

Danach sollte eigentlich noch das Wort (in dem Fall Hallo) ausgegeben werden, nur dass es durch die Änderung dann Haballobo heißt. Das soll das Programm machen. Doch ich verstehe nicht, wieso immer wieder dieser Fehler kommt.

Folgendes ist mein kompletter Code von diesem Programm:

package Lektion_7;

import java.lang.reflect.Array;
import java.util.Scanner;

public class B_SprachenSpiel {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.print("Bitte geben Sie ein Wort für das B-Sprachen Spiel ein: ");
    String B = sc.nextLine();
    Spiel(B);

    // System.out.println("Das umgewandelte Wort lautet: " + Spiel(B));
  }

  public static void Spiel(String Wort) {
    char[] x = new char [100];
    x = Wort.toCharArray();
    System.out.println(x.length);
    int y = x.length;
    int lang = x.length;

    for (int i = 0; i < y; i++) {
      if (x[i] == 'a' || x[i] == 'e' || x[i] == 'i' || x[i] == 'o' || x[i] == 'u') {
        lang += 2;
      }
    }

    System.out.println(lang);
    char[] neu = new char[lang];

    for (int i = 0; i <= neu.length; i++) {
      if (neu[i] == 'a' || neu[i] == 'e' || neu[i] == 'i' || neu[i] == 'o' || neu[i] == 'u') {
        neu[i] = (char) (x[i] + 'b' + (char) x[i]);
      }
    }

    String z = x.toString();
    System.out.println("                         Das umgewandelte Wort lautet: " + String.valueOf(neu));
    // for (int i = 0; i <= x.length; i++)
    //		{
    //			System.out.print(x[i]);
    //		}
  }
}
Computer, programmieren, Java, Array, Informatik

Array in ein anderes Array absteigend sortieren - Java?

Hallo Zusammen,

ich würde gerne ein Array in ein anderes Array absteigend sortieren.

Wenn ich in der for-Schleife und auch im weiteren Verlauf immer den letzen Index, also hier 3 manuell eingebe, läuft mein Programm tadellos. Jedoch möchte ich nicht von einer bestimmten Array-Länge abhängig sein und deshalb die Abbruchbedingung "hoch.length" anstatt eines festen Indexes nutzen, damit ich das Array auch ggf. erweitern kann.

Hier habe ich aber irgendwo einen Fehler und finde einfach nicht warum ich einen "Index out of bound" Fehler in der kursiv markierten Zeile erhalte.

Kann mir vielleicht jemand sagen wo mein Fehler liegt?

Danke!

public static void main(String[] args) {
      //   Index   =            0,1,2,3
         int [] hoch = new int []{2,3,4,5};            
         // neues array "runter" erstellen mit der Länge von Array "hoch"
         int [] runter = new int [hoch.length];
         // Start bei 0, Ende bei hoch.length
         for(int i=0; i <= hoch.length; i++) {
         // Hilfsvariable "hilfe" einbauen     
         int hilfe;                                    
  // hoch.length ist mein letzter Durchgang, -1 da ich eine Position mehr habe als dass ich einen Index habe
         runter [i] = hoch [hoch.length -i -1];
         hilfe = runter [i];
         }     
         // Ausgabe
         System.out.println("Array hoch:" + " " + Arrays.toString(hoch));
         System.out.println("Array runter:" + " " + Arrays.toString(runter));
         }}
Computer, Schule, programmieren, Java, Array

Meistgelesene Beiträge zum Thema Array