计算字符串中空格和句号个数的递归方法



我在尝试创建一个计算字符串中句号和空格数量的递归方法时遇到了一点麻烦。我可以用迭代很容易地做到这一点,但我对递归的概念还很陌生。这是我到目前为止的代码,谁能告诉我我哪里做错了?

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

每个人的建议的新方法:

public static int periodsAndSpaces(String s){ //option 3
if(s.length()==0){ //base case
return 0;
}
else if(s.charAt(0) == ' ' || s.charAt(0) == '.'){ 
return periodsAndSpaces(s.substring(1)) + 1;
}
else{
return periodsAndSpaces(s.substring(1));
}
}

方法在字符串中没有剩余字符时停止运行,并且我添加了另一种情况,用于在当前字符中没有句号和空格时将它们添加到总和中。

相关内容

  • 没有找到相关文章

最新更新