Hallo,
ich versuche ein (rekursives) Programm zu schreiben, das überprüft, ob sich ein übergebener Character in einem gegebenen Array befindet.
Leider zählt mein Programm den ersten Buchstaben nur einmal, obwohl er zweimal vorkommt. Ich fange dabei von hinten an zu überprüfen.
Kann mir vielleicht jemand sagen, woran das liegt?
ich versuche ein (rekursives) Programm zu schreiben, das überprüft, ob sich ein übergebener Character in einem gegebenen Array befindet.
Leider zählt mein Programm den ersten Buchstaben nur einmal, obwohl er zweimal vorkommt. Ich fange dabei von hinten an zu überprüfen.
Java:
public static void testAnzahl() {
char[] c1 = "dortmund".toCharArray();
for (char ch = 'a'; ch <= 'z'; ch++){
System.out.println("Anzahl " + ch + ": " + anzahl(ch, c1));
};
public static int anzahl(char ch, char[] arr) {
if (ch == arr[arr.length-1]) {
return anzahlHilfsmethode(ch, arr, arr.length-1, 0);
}
if (ch != arr[arr.length-1]) {
return anzahlHilfsmethode(ch, arr, arr.length-1, 0);
}
return anzahlHilfsmethode(ch, arr, arr.length-1, 0);
}
public static int anzahlHilfsmethode(char ch, char[] arr, int index, int counter) {
if (index < 0) {
return counter;
}
if (ch == arr[index]) {
counter += 1;
return anzahlHilfsmethode(ch, arr, index-1, counter);
}
if (ch != arr[arr.length-1]) {
return anzahlHilfsmethode(ch, arr, index-1, counter);
}
return counter;
}
Kann mir vielleicht jemand sagen, woran das liegt?