描述以下两个功能,以及它们是否执行相同的任务-
public int Jane1(String input, char aChar) {
int count = 0;
int index = input.indexOf(aChar);
while (index >= 0) {
count++;
index = input.indexOf(aChar, index + 1);
}
return count;
}
public int Jane3(String input, char aChar) {
int index = input.indexOf(aChar);
if (index < 0) return 0;
return Jane3(input.substring(index + 1), aChar) + 1;
}我认为他们不会执行相同的任务,但我不确定原因。Jane3函数使用递归调用返回字符串输入的长度,其中as Jane1返回字符串的长度。努力弄清楚返回子字符串(我认为这是一个字符串结果)和索引之间的区别?
发布于 2011-05-15 21:57:52
它们都执行相同的任务。计算aChar在input中出现的次数。第一个使用indexOf的重载版本和一个循环来实现结果。第二个版本将在第一次出现aChar时拆分输入,并在第二个版本中递归调用自己。结果是一个整数(如果没有发生,则为0,或者1+字符在第二部分中被发现的次数)。
PS:为什么你不写一个主类,为不同的输入运行/调试这两个方法呢?这是最好的学习方法。
发布于 2011-05-15 21:46:32
两者都显示相同的输出:
PS :您尝试运行代码并使用o/p ?进行检查
发布于 2011-05-15 21:58:38
Jane1使用while循环,而Jane3使用递归。这应该是一个很好的开始。两者都返回一个字符在字符串中出现的次数。
https://stackoverflow.com/questions/6008707
复制相似问题