我需要澄清我的一个作业问题; 因为它声明"实现一个递归方法来计算并返回给定字符串中的小写元音总数" 以使其更容易,假设有帮助方法(让我们称之为isVowel(ch))如果给定的字符是小写元音则返回 true ,否则返回false。
所以:isVowel(ch)
如果字符是小写元音,则返回true
,否则返回
所以对于第一个问题,它要求确定一个合适的停止案例:
public static int cVowels (String s)
if (s.length() == 0) {
return 0;
}
}
这是对的吗?
接下来的问题是它要求递归地实现该方法并创建返回给定字符串s中的小写元音数量的代码。这就是我们假设有一种帮助方法isVowel(ch)的地方。 (有点被困在这里)
public static int cVowels (String s) {
if (s.length() == 0) {
return 0;
} else {
int counter = cVowels(s.substring(1));
if (isVowel(s.charAt(0)) == true) {
return 1+counter;
} else
return counter;
}
}
}
有人可以澄清代码是否确实正确吗?如果没有,问题出在哪里?由于假定的辅助方法而无法对其进行测试。
由于
答案 0 :(得分:2)
要回答你的问题,逻辑看起来很合理。这不是我将如何处理这个问题,但看起来它仍然可以工作。你实际上是在从左边的字符串末尾开始检查元音,但是不管你的船是什么漂浮。
你可以轻松编写一个帮助方法来测试它,对于初学者学习基本概念它应该看起来像这样:
public static boolean isVowel (char ch) {
if (ch=='a' ||
ch=='e' ||
ch=='i' ||
ch=='o' ||
ch=='u')
{
return true;
} else{
return false;
}
}