我不能找到这个练习的解决方案,这里是任务:递归helper方法
(数组中的指定字符的出现)编写 认定的出现的次数递归方法数组中的指定字符。 您需要 定义以下两种方法。第二个是递归辅助方法。
公共静态诠释计数(CHAR []字符,字符CH)
公共静态诠释计数(烧焦[]字符,字符CH,INT高)
编写提示用户的测试程序在一行中输入一个字符列表, 和一个字符,并在列表中显示该字符的出现次数。
1)我能解决这个问题只有当我添加另一个参数(INT指数),但我怎么能做到这一点无需增加其他参数或使用循环?
2)为什么辅助方法在那里?我不明白递归中辅助方法的目的。
这里是我的解决方案:
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);
}
}
}