Hallo zusammen,
ich finde den Fehler im folgenden Programm nicht. Das Programm soll die größte Anzahl der zwischen 2 gleichen Buchstaben liegenden Buchstaben finden.
Beispiel mit 'a' und 'z': "Das Haus ist schön im Wald ztestz"
"Das Haus ist schön im Wald ztestz"
"Das Haus ist schön im Wald ztestz"
Das Programm sollte dann ausgeben:
"a Ergebnis: 17"
"z Ergebnis: 4"
Aber es gibt aus:
"a Ergebnis: 17"
"z Ergebnis: 26"
Das Programm zählt 'z' von Anfang an schon +1.
Ich weiß nicht woran das liegt.
Ich bin für jede Hilfe dankbar.
Gruß
Unten der Code
ich finde den Fehler im folgenden Programm nicht. Das Programm soll die größte Anzahl der zwischen 2 gleichen Buchstaben liegenden Buchstaben finden.
Beispiel mit 'a' und 'z': "Das Haus ist schön im Wald ztestz"
"Das Haus ist schön im Wald ztestz"
"Das Haus ist schön im Wald ztestz"
Das Programm sollte dann ausgeben:
"a Ergebnis: 17"
"z Ergebnis: 4"
Aber es gibt aus:
"a Ergebnis: 17"
"z Ergebnis: 26"
Das Programm zählt 'z' von Anfang an schon +1.
Ich weiß nicht woran das liegt.
Ich bin für jede Hilfe dankbar.
Gruß
Unten der Code
Java:
public static void main(String[] args) {
String text = "Das Haus ist schön im Wald ztestz";
String textklein = text.toLowerCase();
System.out.println(text);
char[] buchstaben = textklein.toCharArray();
int zahl_a = 0;
int zahl_z = 0;
int hoechste_a = 0;
int hoechste_z = 0;
boolean a = false;
boolean z = false;
for(int i = 0; i<textklein.length(); i++){
switch(buchstaben[i]){
case 'a':while(hoechste_a<zahl_a){
hoechste_a = zahl_a;
}
zahl_a = 0;
a = true;
break;
case 'z':while(hoechste_z<zahl_z){
hoechste_z = zahl_z;
}
zahl_z = 0;
z = true;
break;
}
if(a = true){
zahl_a = zahl_a +1;
}
if(z = true){
zahl_z = zahl_z +1;
}
}
System.out.println("a Ergebnis: "+(hoechste_a-1));
System.out.println("z Ergebnis: "+(hoechste_z-1));
}
Zuletzt bearbeitet: