题目:*18.17 (数组中某个指定字符出现的次数)
编写一个递归的方法,求出数组中一个指定字符出现的次数。需要定义下面两个方法,第二个方法是一个递归的辅助方法。
public static int count(char[] chars, char ch)
public static int count(char[] chars, char ch, int high)
编写一个测试程序,提示用户在一行中输入一个字符列表以及一个字符,然后显示该字符在列表中出现的次数。
-
代码示例
编程练习题18_17CharacterCount.java
package chapter_18;import java.util.Scanner;public class 编程练习题18_17CharacterCount {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("Enter a string and a character: ");String str = input.next();char ch = input.next().charAt(0);System.out.println(count(str.toCharArray(), ch));input.close();}public static int count(char[] chars,char ch) {return count(chars, ch,chars.length-1);}public static int count(char[] chars,char ch,int high) {if (high < 0) { return 0; // 基本情况:如果high小于0,返回0 } int count = 0; // 局部变量来计数,避免使用静态变量 if (chars[high] == ch) { count++; } return count + count(chars, ch, high - 1); // 递归调用并累加结果 }}
-
输出结果
Enter a string and a character: AAaaAAaaAAaa a
6