Compiler-Fehler ..OutOfBoundsException..

rfm

Mitglied
Hallo Leute!

Java:
import java.util.Scanner;

public class test
{
	public static void main(String[] args)
	{
		String[] validInputs = {"Karl", "Heinz", "Ketchup"};
		
		guga:
		while (true)
		{
			String eingabe = new Scanner(System.in).nextLine();
			
			for (int i = 0; i <= eingabe.length(); i++)
			{
				if (validInputs[i].equals(eingabe))
				{
					break guga;
				}
			}
		}
		
		System.out.println("sehr jut gemacht!");
	}
}

Wenn ich dieses Programm ausführe, und etwas Eingabe, das mehr als 2 Zeichen beeinhaltet (z.B "abc"), bekomme ich den Fehler:

Code:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
	at test.main(test.java:16)

Ich glaube, das damit gemeint ist, dass irgendein Speicher voll ist :/ könnt ihr mir helfen und mich aufklären? :D

Dankeschön!

Grüße
 

Fab1

Top Contributor
Edit: Ok, der obere Teil war mist, bzw passt nicht auf diese Situation. :)

Außerdem wie Final_Striker bereits gesagt hat greifst du hier auf den Index 3 zu.

Java:
if (validInputs[i].equals(eingabe))

da dein Array validInputs allerdings eine Länge von 3 und somit von Index 0 -2 geht, bekommst du natürlich einen Fehler.
 

KI21

Neues Mitglied
Hallo rfm,

in deiner for Schleife darfst du nicht i<= lenghth() schreiben, sondern nur i< lenght().

Also so:
Java:
 for (int i = 0; i < validInputs.length; i++)

PS: 1. Klassennamen werden in Java immer großgeschrieben.
2. Ein Arrayindex beginnt meistens bei 0 und geht immer bis n-1.
 
Zuletzt bearbeitet:

rfm

Mitglied
Erstmal danke an alle :)

Aaaber, moment mal, ist das hier nicht falsch?
Java:
for (int i = 0; i < eingabe.length(); i++)
müsste es nicht
Java:
for (int i = 0; i < validInputs.length; i++)
heißen? Im ersten Fall nehmen wir doch die Anzahl der Zeichen der Eingabe, anstatt der Anzahl der Felder des Arrays als Bedingung. Hab ich etwas falsch verstanden?
 
Zuletzt bearbeitet:

rfm

Mitglied
Hihi, ich glaube ihr alle habt etwas großes einfach übersehen :D Egal, ihr habt ja auch euch nur aufs wesentliche Konzentriert, von daher ;) ...
 

Fab1

Top Contributor
Final_Striker und auch ich haben dich darauf hingewiesen, dass du dabei etwas falsch machst. Haben allerdings nicht explizit das angesprochen. Der Grund ist einfach, du hast nie gesagt was du genau machen willst. :D
 

Ähnliche Java Themen

Neue Themen


Oben