如何编写统计字符串空格和句点的递归方法,现有代码错在哪里?
代码错误点
- 基线条件设置错误:字符串长度不可能小于0,原有基线条件永远无法触发,递归执行到空字符串时调用
charAt(0)会触发索引越界异常,正确基线条件应为s.length() == 0时返回0。 - 非匹配字符的处理逻辑错误:当前首字符既不是空格也不是句点时,原有代码直接返回0,中断了递归流程,没有统计剩余子串中的符合要求字符,应当继续调用递归方法处理剩余子串。
修复后代码
public static int periodsAndSpaces(String s){ //option 3 // 基线条件:空字符串无匹配字符,返回0 if(s.length() == 0){ return 0; } // 首字符匹配,计数+1后递归处理剩余子串 else if(s.charAt(0) == ' ' || s.charAt(0) == '.'){ return periodsAndSpaces(s.substring(1)) + 1; } // 首字符不匹配,直接递归处理剩余子串 else { return periodsAndSpaces(s.substring(1)); } }
内容的提问来源于stack exchange,提问作者user17080770
相关产品推荐
相关产品推荐

