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

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

10个回答

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;
    }
}
Jack_windows
Jack_windows 这是递归写法,第三种该怎么写,我不知道,望指点
大约 3 年之前 回复
            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

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

为什么我的没缩进?

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);
}

}

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

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

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

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) ;
}
不知道你说的递归是否是这样的递归

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);

    }

}
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐