ArrayIndexOutOfBoundsException - Problem mit Array-Größe

The_Virus

Mitglied
Ich habe für die Uni ein Programm geschrieben, was einen eingelesenen Satz in ein Histogramm umwandelt. Die Schwierigkeit dabei ist, es können beliebig viele Leerzeichen vor dem ersten Wort und zwischen den Wörtern stehen. Auch soll das Histogramm immer genau unter dem ersten Buchstaben des jeweiligen Wort ausgegeben werden. Es geht um diese Aufgabe:
Übungsblatt "Arrays"

An sich fertig ist das Programm fertig und funktioniert so wie es soll, aber nur solange vor dem ersten Wort keine Leerzeichen stehen. Sobald ich da ein Leerzeichen davor schreibe, kriege ich ArrayIndexOutOfBoundsException.
Vielleicht kann einer von euch das mal kurz testen und mir sagen wo der Fehler ist. Ich finde ihn nämlich nicht.
Bsp - so gehts:
Code:
heute    regnet es     morgen   vielleicht  auch
so kriege ich den Error:
Code:
   heute    regnet es     morgen   vielleicht  auch

Java:
package paketHistrogram;
import java.util.Scanner;

public class Histogram {
	private String satz;
	private String[] wort;
	private String[] leerZ;
	private int wortLeerZ;
	private int maxLang;
	private String zeile;
	private String weiter;
	
	public void einlesen() {
		Scanner einlesen = new Scanner(System.in);
		System.out.println("Bitte geben Sie einen Satz ein!");
		satz = einlesen.nextLine();
		wort = satz.split("\\s+");
		leerZ = satz.split("\\w+");
		
//Dieser Teil ist nur zur Ueberpruefung
//		for (int i = 0; i < leerZ.length; i++) {
//			System.out.printf("ArrayLeerZ[%d]: |%s| \n", i, leerZ[i]);
//		}
	}
	
	public void leerzPlusWortlaenge() {
		for (int i = 1; i < leerZ.length; i++) {
			wortLeerZ = (wort[i-1].length() -1);
			for(int j = 0; j < wortLeerZ; j++) {
				leerZ[i] += " ";
			}
		}
	}
	
	public void maxWortLaenge() {
		maxLang = 0;
		for (int i = 0; i < wort.length; i++) {
			if(wort[i].length() > maxLang) {
				maxLang = wort[i].length();
			}
		}
	}

	public void ausgabe() {
		for (int spalte = 0; spalte < maxLang; spalte++){
			zeile = "";
			for (int i = 0; i < wort.length; i++){
				if (wort[i].length() <= spalte){
					zeile += (leerZ[i] + "-");
				}else{
					zeile += (leerZ[i] + "*");
				}
			}
			System.out.println(zeile);	
		}
		
//Dieser Teil ist nur zur Ueberpruefung
//		System.out.println();
//		for (int h = 0; h < wort.length; h++) {
//			System.out.printf("ArrayWort[%d]: |%s| \n", h, wort[h]);
//		}
//		System.out.println();
//		for (int i = 0; i < leerZ.length; i++) {
//			System.out.printf("ArrayLeerZ[%d]: |%s| \n", i, leerZ[i]);
//		}
//		System.out.printf("\nMax Laenge: %d\n\n", maxLang);
	}
	
	public void weiter() {
		Scanner einlesen = new Scanner(System.in);
		System.out.println("\nNochmal? (j / n)");
		weiter = einlesen.next();
		if(weiter.equals("n")) {
			System.out.println("Schoenen Tag noch!");
		}
	}
	
	public String getWeiter() {
		return weiter;
	}	
}
hier noch die main() dazu:
Java:
package paketHistrogram;
public class HistogramStart {
	public static void main(String[] args) {
		
		Histogram histo = new Histogram();
		do {
			histo.einlesen();
			histo.leerzPlusWortlaenge();
			histo.maxWortLaenge();
			histo.ausgabe();
			histo.weiter();
		} while( histo.getWeiter().equals("j") );
	}
}
 
Zuletzt bearbeitet:

chalkbag

Bekanntes Mitglied
Java:
 if (wort[i].length() <= spalte){
                    zeile += (leerZ[i] + "-");

bin mal mit dem debugger durch. Im fehlerhaften Fall hast du 7 Woerter, und 6 leerZ greifst aber mit dem gleichen Index i drauf zu. Deswegen gibt den Fehler.
Kannst du führende Leerzeichen nicht einfach beim einlesen abschneiden (String.trim(), String.LTrim, String.RTrim) oder sind die für die Aufgabe relevant? Hab mir die Aufgabenstellung ehrlich gesagt nicht angeschaut. :oops:
 

The_Virus

Mitglied
Ja, ich brauche die führenden Leerzeichen, um die *-Ausgabe einzurücken.
Das Problem sind aber nicht die Leerzeichen, sondern das Wort Array. Es sind in jedem Fall ja nur 6 Wörter, nicht 7. Aber schreibt aber ins Wort-Array an der ersten Stelle eine ein "" (Leer).

Wie kann ich diese Leerstelle rauslöschen und die Stellen dahinter eins aufrücken lassen?
 
Zuletzt bearbeitet:

jgh

Top Contributor
die Methode [c]trim()[/c] der Klasse String bietet das entfernen von Leerzeichen zu Beginn und am Ende des Strings an und liefert einen String zurück
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Problem mit "ArrayIndexOutOfBoundsException" Java Basics - Anfänger-Themen 11
L Compiler-Fehler Problem beim Programmieren eines Kalenders (java.lang.ArrayIndexOutOfBoundsException) Java Basics - Anfänger-Themen 2
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
Kumora ArrayIndexOutOfBoundsException bei einem Sortierverfahren Java Basics - Anfänger-Themen 2
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
B ArrayIndexOutOfBoundsException, ich finde den Fehler nicht? Java Basics - Anfänger-Themen 10
JaVaN0oB java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 18
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
F ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 2
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
C Erste Schritte ArrayIndexOutOfBoundsException beim Speichern im Array Java Basics - Anfänger-Themen 2
Hanschyo ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
I java.lang.ArrayIndexOutOfBoundsException at lösung.main Java Basics - Anfänger-Themen 3
M ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 1
R Compiler-Fehler ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 7
R java.lang.ArrayIndexOutOfBoundsException: 0 Rechner Error Java Basics - Anfänger-Themen 4
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
L ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 10
J Zwei Arrays zippen wirft eine ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 11
V java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 2
L Fehler: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
V ArrayIndexOutofBoundsException:0 Java Basics - Anfänger-Themen 0
R ArrayIndexOutofBoundsException: 10 Java Basics - Anfänger-Themen 5
P ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 2
T ArrayIndexOutOfBoundsException -> Fehler in for-Schleife? Java Basics - Anfänger-Themen 6
S ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
T ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
B java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
S noch ein ArrayIndexOutOfBoundsException Fehler Java Basics - Anfänger-Themen 2
R Compiler-Fehler java.lang.ArrayIndexOutOfBoundsException, warum? Java Basics - Anfänger-Themen 6
O ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 18
J "ArrayIndexOutOfBoundsException", finde den Fehler schlicht nicht Java Basics - Anfänger-Themen 6
A ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 20
C ArrayIndexOutOfBoundsException bei meinem ersten objektiorientierten Programm Java Basics - Anfänger-Themen 4
A parseDouble - ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 3
S ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
A ArrayIndexOutOfBoundsException - woher kommt er?! Java Basics - Anfänger-Themen 4
J AWT-EventQueue: ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 2
S ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 6
S ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
K ArrayIndexOutOfBoundsException: 0 Java Basics - Anfänger-Themen 4
Luk10 ArrayIndexOutOfBoundsException .... Java Basics - Anfänger-Themen 2
X Probleme mit ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 7
B Fehlermeldung: "ArrayIndexOutOfBoundsException"??? Java Basics - Anfänger-Themen 3
H java.lang.ArrayIndexOutOfBoundsException: 0 >= 0 Java Basics - Anfänger-Themen 5
N ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 7
U ArrayIndexOutOfBoundsException - dringend Hilfe gesucht Java Basics - Anfänger-Themen 8
S java.lang.ArrayIndexOutOfBoundsException: 5 nur wieso? Java Basics - Anfänger-Themen 2
T ArrayIndexOutOfBoundsException ? Matrizenrechnung. Java Basics - Anfänger-Themen 3
B ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
T ArrayIndexOutOfBoundsException finde den Auslöser nicht Java Basics - Anfänger-Themen 5
G ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 11
V java.lang.ArrayIndexOutOfBoundsException: Java Basics - Anfänger-Themen 3
E 2 Prob.:"ArrayIndexOutOfBoundsException" & do- Java Basics - Anfänger-Themen 2
Z Warum habe ich eine ArrayIndexOutOfBoundsException? Java Basics - Anfänger-Themen 2
N ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 2
S ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 3
N ArrayIndexOutOfBoundsException...... Java Basics - Anfänger-Themen 8
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
A ScheduledExecutorService problem Java Basics - Anfänger-Themen 7
marcelnedza Problem mit Weltzuweisung, JavaKarol Java Basics - Anfänger-Themen 13
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
M Erste Schritte Collatz Problem max int Java Basics - Anfänger-Themen 3
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
L Problem bei Rechnung mit Math.pow Java Basics - Anfänger-Themen 13
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
sserio BigInteger Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
K Problem mit "Random" Java Basics - Anfänger-Themen 5
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Schleife Problem Java Basics - Anfänger-Themen 2
D Problem mit der Erkennung von \n Java Basics - Anfänger-Themen 2
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
HeiTim Problem mit der Kommasetzung an der richtigen stelle Java Basics - Anfänger-Themen 59
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
P Problem mit Calendar.getDisplayName() Java Basics - Anfänger-Themen 8
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
H Problem mit Verzweigungen Java Basics - Anfänger-Themen 6
H Problem mit Rückgabewert Java Basics - Anfänger-Themen 7
josfe1234 JAVA FX problem Java Basics - Anfänger-Themen 3
A Code Problem Java Basics - Anfänger-Themen 6
Henri Problem von Typen Java Basics - Anfänger-Themen 7
K jackson Mapping - Problem mit Zeitzonen Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben