我正在上一门在线 CPS 课程,一个问题要求我编写一个代码来计算字符串中的元音(大写和小写)。这是我的代码:
public static int countVowels( String s )
{
{
if ( s.length() == 0 )
return 0 + countVowels(s);
else if ( (s.substring(0, 1) == "a" ) || (s.substring(0, 1) == "A") )
return 1 + countVowels(s.substring(1));
else if ( (s.substring(0, 1) == "e" ) || (s.substring(0, 1) == "E") )
return 1 + countVowels(s.substring(1));
else if ( (s.substring(0, 1) == "i" ) || (s.substring(0, 1) == "I") )
return 1 + countVowels(s.substring(1));
else if ( (s.substring(0, 1) == "o" ) || (s.substring(0, 1) == "O") )
return 1 + countVowels(s.substring(1));
else if ( (s.substring(0, 1) == "u" ) || (s.substring(0, 1) == "U") )
return 1 + countVowels(s.substring(1));
}
return countVowels(s.substring(1));
}
但我收到“StackOverFlow”错误,我不知道该怎么做。我知道该错误意味着未达到终止条件。我不允许使用任何我还没有学过的东西,我也不允许使用 for 或 while 语句,因为这是一个递归问题。
我能得到一些帮助吗?