GoBiOlderWang
2017-07-04 12:43
采纳率: 31.6%
浏览 2.8k
已采纳

计算字符串中某个字符的个数,要用到递归

请写出各自独立的三段代码来计算给定文本内字符“A”的个数,其中一段代码要使用到递归方式。例如:假设给定文本为“AAA ratingA”,则返回结果为“4”。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

10条回答 默认 最新

  • Jack_windows 2017-07-05 02:40
    已采纳
    public class Test {
    
        public static void main(String args[]){
            String s="AAA ratingAA";
            int number=getNumber(s,'A');
            System.out.println(number);
        }
        public static int getNumber(String s,char a){
            int number=0;
            if(s.indexOf(a)!=-1){
                s=s.substring(s.indexOf(a)+1,s.length());
                number=getNumber(s,a)+1;
            }
            return number;
        }
    }
    
    打赏 评论
  • 袁杰Jerry 2017-07-04 13:14
                var count=0;
        function calc(str){
            if(str.indexOf('A')>=0){
                var index=str.indexOf('A');
                count++;
                str=str.substr(index+1,str.length);
                console.info(str)
                return calc(str)
            }else{
                return count;
            }
        }
       console.info(calc('AAA ratingA'));//4
    
    打赏 评论
  • johnnyjyh 2017-07-04 14:55

    int countCh(char *str)
    {
    if(!*str)
    {
    return 0;
    }
    else
    {
    if(*str=='A')
    {
    return 1+countCh(str+1);
    }
    else
    {
    return countCh(str+1);
    }
    }
    }

    打赏 评论
  • johnnyjyh 2017-07-04 15:01

    为什么我的没缩进?

    打赏 评论
  • Jack_windows 2017-07-04 15:16

    public class Test {

    public static void main(String args[]){
        String s="AAA ratingA";
        int number=0;
        for(int i=0;i<s.length();i++){
            if("A".equals(s.charAt(i)+"")){
                number++;
            }
        }
        System.out.println(number);
    }
    

    }

    打赏 评论
  • 黄河默默 2017-07-05 00:19

    你的重点在 为了用递归而用递归

    打赏 评论
  • 夜里的柚子 2017-07-05 00:20

    同意楼上。统计单词,其实正常方法就是遍历字符串···

    打赏 评论
  • T_world 2017-07-05 01:39

    先判断传入的字符串的第一个字符是否是A,然后将字符串的第一个字符去掉,如果第一个字符是A,递归调用函数,并传入新字符串,当前返回1+递归调用返回的值,若不是A则直接返回递归调用返回的值即可

    打赏 评论
  • @皮皮猪 2017-07-05 02:19

    int fun(int bit,char s[])
    {
    if(bit==strlen(s)) return 0;
    if(s[bit]=='A') return 1+fun(bit+1,s);
    else return fun(bit+1,s) ;
    }
    不知道你说的递归是否是这样的递归

    打赏 评论
  • hello_1s 2017-07-05 10:02

    private void initDatas(int count,String ss) {
    if(ss.length()==0){
    System.out.println(count);
    return;

        }else {
            String a = ss.substring(1,ss.length());
            String b = ss.substring(0,1);
            if("A".equals(b)){
                count++;
            }
    
            initDatas(count,a);
    
        }
    
    }
    
    打赏 评论

相关推荐 更多相似问题