You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用递归方法检查字符串?递归统计删除"chicken"次数需求问询

用迭代(循环)实现统计并移除"chicken"的完整方案

嘿,我太懂这种感觉了——明明被要求用递归方法统计并删除字符串里的所有"chicken"实例,但写着写着发现用循环实现起来轻松太多,完全不用纠结递归的栈逻辑!

先把你给出的代码片段补全成完整可运行的版本,实现统计移除次数+删除所有"chicken"的功能:

package recursive_labs;
import java.util.Scanner;

public class ChickenAnhilator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("输入要检查的字符串:");
        String input = scanner.nextLine();
        
        int removedCount = countAndEliminateChicken(input);
        System.out.println("总共移除了 " + removedCount + " 个\"chicken\"");
        
        scanner.close();
    }

    public static int countAndEliminateChicken(String testStr) {
        String target = "chicken";
        int count = 0;
        StringBuilder modifiedStr = new StringBuilder(testStr);
        
        // 循环查找并移除所有目标字符串
        int foundIndex = modifiedStr.indexOf(target);
        while (foundIndex != -1) {
            count++;
            // 删除找到的"chicken"
            modifiedStr.delete(foundIndex, foundIndex + target.length());
            // 继续查找下一个匹配项
            foundIndex = modifiedStr.indexOf(target);
        }

        // 如果需要查看移除后的结果,解开下面的注释
        // System.out.println("移除后的字符串:" + modifiedStr.toString());
        return count;
    }
}

为什么这个写法更顺手?

  • 用StringBuilder做字符串修改,比直接拼接字符串高效多了,避免频繁生成新的字符串对象
  • 循环逻辑直白:找到一个删一个,计数加一,直到找不到为止,完全不用考虑递归的终止条件和栈深度问题
  • 调试起来也更方便,每一步的字符串状态都很容易追踪

如果之后还是需要补一个递归版本作为对比(毕竟题目要求了),这里也给你写一个简单的实现参考:

public static int recursiveChickenCounter(String testStr) {
    String target = "chicken";
    int index = testStr.indexOf(target);
    
    if (index == -1) {
        // 递归终止条件:找不到"chicken"了
        return 0;
    }
    // 移除当前找到的"chicken",递归处理剩余字符串,累加计数
    return 1 + recursiveChickenCounter(
        testStr.substring(0, index) + testStr.substring(index + target.length())
    );
}

不过说实话,在这个场景下迭代写法确实更优——递归虽然符合题目要求,但如果字符串特别长,还可能触发栈溢出的问题。

内容的提问来源于stack exchange,提问作者BigNoseJones

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:05:06