【发布时间】:2014-03-31 15:49:41
【问题描述】:
我正在编写一个程序来计算一个字符在字符串中出现的次数。这是我的方法的样子:
public static int count (String line, char c)
{
int charOccurences = 0; //= 0;
for (int x = 0 ; x < line.length () ; x++)
{
if (line.charAt (x) == c)
{
charOccurences++;
line = line.substring (0, x) + line.substring (x + 1);
return count (line, c);
}
else
return charOccurences;
}
return charOccurences;
}
它总是返回 0,因为一旦方法调用自身,它会将 charOccurences 设置回 0。但我需要声明该变量才能使方法工作。我想不出任何办法。任何帮助将不胜感激。
【问题讨论】:
-
一个问题是你的 for 循环中的 else 。另外,您为什么要递归执行此操作,只需遍历原始字符串即可。一个简单的就够了。
-
主要问题是每次方法重复时我都将 charOccurences 设置为 0。如果不这样做,我想不出办法。我的老师也告诉我们让它递归。
-
那么您可能不必使用循环。使用递归或循环,但不能同时使用。
-
在 if 应该是 return charOccurrences+=count(line,c);返回字符出现;显然还有其他问题
标签: java string recursion count character