java - 计算字符串中空格和句点数的递归方法
问题描述
我在尝试创建一个计算字符串中句点和空格数的递归方法时遇到了一些麻烦。我可以很容易地使用迭代来做到这一点,但我对递归的概念还是很陌生。到目前为止,这是我的代码,有人能告诉我哪里出错了吗?
public static int periodsAndSpaces(String s){ //option 3
if(s.length()<0){ //base case
return 0;
}
else if(s.charAt(0) == ' ' || s.charAt(0) == '.'){ //general case
return periodsAndSpaces(s.substring(1)) + 1;
}
return 0;
}
解决方案
package com.test.demo;
public class Counter {
public static void main(String[] args) {
System.out.println(new Counter().countPeriodsAndSpaces(" test. . .a"));
}
int countPeriodsAndSpaces(String rs) {
if (rs == null || rs.isEmpty())
return 0;
char c = rs.charAt(0);
if (c == ' ' || c == '.')
return 1 + countPeriodsAndSpaces(rs.substring(1));
else
return countPeriodsAndSpaces(rs.substring(1));
}
}
// 输出 6
推荐阅读
- javascript - 如何使 Vuetify 轮播图像响应,尤其是在移动屏幕上?
- r - 如何在ggplot上绘制不同的线?“组=变量”不起作用?
- ios - 具有一个视图控制器水平方向的垂直方向应用程序。如何在故事板上进行设计?
- javascript - 需要在选择日期范围名称时设置默认日期
- visual-studio-code - 减小 VSCode 中工具提示的大小
- python - 如何在带有熊猫的标题行中应用 Filer
- javascript - 将方法分配给变量时使用箭头函数声明方法和函数()之间的区别?
- rust - 将一种类型映射到 rust 中的另一种类型
- java - 无法提取结果集;SQL [不适用];嵌套异常是 org.hibernate.exception.SQLGrammarException: could notextract ResultSet delete not working
- c++ - 在函数中去掉 BIGNUM BN_bn2mpi