Récursive de la méthode d'assistance

je ne peux pas trouver la bonne solution pour cet exercice, voici la tâche:


(Occurrences d'un caractère spécifié dans un tableau) Écrire une méthode récursive qui
trouve le nombre d'occurrences d'un caractère spécifié dans un tableau. Vous avez besoin de
définir l'une des deux méthodes suivantes.
Le second est un appel récursif de la méthode d'assistance.

public static int count(char[] caractères, char ch)

public static int count(char[] caractères, char ch, int haut)

Écrire un programme de test qui invite l'utilisateur à entrer une liste de caractères dans une ligne,
et d'un personnage, et affiche le nombre d'occurrences du caractère dans la liste.


1) je peux le résoudre que si j'ajoute un autre paramètre (int index) mais comment puis-je le faire sans ajouter un autre paramètre ou à l'aide de la boucle ?

2)Pourquoi la méthode d'aide là-bas? Je ne comprends pas le but de méthodes d'aide à la récursivité.

Voici ma solution:

package occurencesinarray;

import java.util.Scanner;

public class Start {
public static void main(String[] args){
    System.out.println("Enter few characters: ");
    Scanner scan = new Scanner(System.in);
    String s = scan.nextLine();
    char[] chars = new char[s.length()];
    for(int i = 0; i < s.length(); i++){
        chars[i] = s.charAt(i);
    }
    System.out.println("Enter desired character: ");
    char ch = scan.nextLine().charAt(0);

    System.out.println(count(chars, ch));
}

public static int count(char[] chars, char ch){
    return count(chars, ch, 0, 0);
}

public static int count(char[] chars, char ch, int high, int index){
    if(index == chars.length){
        return high;
    }
    if(chars[index] == ch){
        return count(chars, ch, high + 1, index + 1);
    } else{
        return count(chars, ch, high, index + 1);
    }
}
}
InformationsquelleAutor Peter | 2014-03-25