java - 防止递归函数导致 "out of bounds"错误

标签 java

我一直在开发一个程序来计算输入文本中的元音。每次找到元音时,它都会使用此方法递归地添加元音计数。但是,每次 lastPos 达到负数 1 时,我都会收到越界错误。如何才能在 lastPos 达到 -1 时停止此操作?

static int R_countVowels(String s, int lastPos) 
{           
    switch (s.charAt(lastPos))
    {  case 'a': case 'A':
       case 'e': case 'E':
       case 'i': case 'I':
       case 'o': case 'O':
       case 'u': case 'U': return (1 + R_countVowels(s, --lastPos));
       default: return R_countVowels(s, --lastPos);
    }
}

最佳答案

我假设这是家庭作业,所以没有代码。

递归函数需要 base case 。您需要将基本情况定义为对于空输入返回 0(无元音),并在归纳步骤(递归调用)之前检查基本情况。

关于java - 防止递归函数导致 "out of bounds"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10392210/

相关文章:

java - Java Socket BufferedReader 是否需要校验和来检查数据?

java - jacoco 代理是否报告另一个代理的 premain 的代码覆盖率

java - 无法使用 keycloak-admin-client 在 Keycloak 中创建用户

java - Eclipse 中 AspectJ 项目中 JUnit 测试的 ClassNotFoundException

java - 我如何重新打包一个包含所有依赖项的 jar 文件?

java - 将 SecurityContext 信息和请求主体注入(inject) @BeanParam

java - Java 中的 move/复制文件操作

java - boolean 递归第 2 部分

java错误两种方法对泛型有相同的删除

java - 检查部分已知的整数是否在某个范围内