Hallo zusammen
ich habe hier nochmal ein Problem mit einem anderen Programm. Ich sollte diesmal ein Programm schreiben welches zwei Wörter nehmen und bestimmen ob das kürzere im längeren enthalten ist. Ich habe zuerst die zwei Wörter abgefragt und sichergestellt dass String one das längere ist.
Danach habe ich eine for-Schleife die durch jeden Buchstaben von one cycled un überprüft ob er mit dem ersten Buchstaben von two übereinstimmt.
Falls ja kommt die nächste for-Schleife bei der durch alle Buchstaben von two gecycled wird bis ein Buchstabe nicht mehr übereinstimmt oder das Wort vollständig vorhanden ist.
Im Grunde ist der Code vollständig implementiert aber ich habe jedes mal eine String index out of range Fehlermeldung die sich auf die Zeile if
ich habe hier nochmal ein Problem mit einem anderen Programm. Ich sollte diesmal ein Programm schreiben welches zwei Wörter nehmen und bestimmen ob das kürzere im längeren enthalten ist. Ich habe zuerst die zwei Wörter abgefragt und sichergestellt dass String one das längere ist.
Danach habe ich eine for-Schleife die durch jeden Buchstaben von one cycled un überprüft ob er mit dem ersten Buchstaben von two übereinstimmt.
Falls ja kommt die nächste for-Schleife bei der durch alle Buchstaben von two gecycled wird bis ein Buchstabe nicht mehr übereinstimmt oder das Wort vollständig vorhanden ist.
Im Grunde ist der Code vollständig implementiert aber ich habe jedes mal eine String index out of range Fehlermeldung die sich auf die Zeile if
Code:
(two.charAt(o) == one.charAt(i))[CODE] bezieht (Die gesamte Meldung ist weiter unten).
Hat jemand evt. eine Idee was der Fehler sein könnte den ich finde ihn einfach nicht.
Gruss Sigmar
[CODE] public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String one;
String two;
String test;
int i;
int o;
boolean f = false;
System.out.println("Geben sie das erste Wort ein.");
one = sc.nextLine();
System.out.println("Geben sie das zweite Wort ein.");
two = sc.nextLine();
//ONE WIRD ZUM GRÖSSEREN WORT
if (one.length() < two.length()) {
test = one;
one = two;
two = test;
}
//CYCLED DURCH JEDEN BUCHSTABEN VON ONE
for (i = 0; i <= one.length() - 1; i++) {
//ÜBERPRÜFT OB DER ERSTE BUCHSTABE VON TWO VORKOMMT
if (two.charAt(1) == one.charAt(i)) {
//CYCLED DURCH JEDEN BUCHSTABEN VON TWO
for (o = 1; o <= two.length()-1; i++) {
//ÜBERPRÜFT OB DAS WORT WEITERHIN ÜBEREINSTIMMT
if (two.charAt(o) == one.charAt(i)) {
if (o == two.length() - 1) {
i = one.length()-1;
f = true;
}
i++;
} else {
o = two.length()-1;
}
}
}
}
if (f == true){
System.out.println(two+" ist in "+one+" enthalten.");
}else{
System.out.println(two+" ist in "+one+" nicht enthalten.");
}
} [CODE]
[CODE]
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 4
at java.lang.String.charAt(String.java:658)
at M411.Str_5.main(Str_5.java:41)
C:\Users\Liam\AppData\Local\NetBeans\Cache\11.2\executor-snippets\run.xml:111: The following error occurred while executing this line:
C:\Users\Liam\AppData\Local\NetBeans\Cache\11.2\executor-snippets\run.xml:94: Java returned: 1
BUILD FAILED (total time: 5 seconds) [CODE]