我的代码有什么问题

-3 java recursion

编写一个递归的,布尔值的方法containsVowel,它接受一个字符串,如果该字符串包含一个元音,则返回true.一个字符串包含一个元音如果:字符串的第一个字符是一个元音,或者字符串的其余部分(超出第一个字符)包含一个元音这是我的编程实验室这是我有的编译器sas有一个元音错误,它没有提供帮助.
请帮我纠正错误,谢谢.

boolean containsVowel(String s)
{ 
    if(s.containsVowel("aeiouAEIOU")) 
    {
        return true;
    }
    else 
    {
        (s.substring(!=));
        return false
    }
}
Run Code Online (Sandbox Code Playgroud)

编译器错误

codelab分析

备注:您似乎在编译时出错

这是我之前做过的另一个问题:

编写一个递归的,int -valued方法len,它接受一个字符串并返回字符串中的字符数.如果字符串是空字符串(""),则字符串的长度为:0.比第一个字符之外的其余字符串的长度多1个.

以下是我的编程实验室正在寻找的答案:

int len(String s)
{
if(s.equals("")){
    return 0;
}
 else {
return (1+len(s.substring(1)));}
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*lan 11

这段代码中有一些问题.

  1. s.containsVowel. s是String,Java String没有containsVowel方法.你应该调用自己的containsVowel方法,而不是String one(不存在).

  2. 如果你做了那个改变,这将是一个无限的递归方法,因为你没有"基本案例".一个让它退出的案例.

  3. (s.substring( !=));不编译.我不知道你在这里做什么.

  4. return false不以分号结尾.如果您希望编译代码,则需要它.

以下是您应该以伪代码方式处理此算法的方法

containsVowel(String input)
    if (empty(input)) return false  //the base case
    char firstChar = getFirstCharOf(input)
    return firstChar.isAnyOf("vowelCharacters") || containsVowel(inputWithoutFirstChar(input))
Run Code Online (Sandbox Code Playgroud)