Java Don';I don’我不知道如何修复这个错误,试图写一个方法,但总是得到同样的错误

Java Don';I don’我不知道如何修复这个错误,试图写一个方法,但总是得到同样的错误,java,Java,我正在尝试编写一个方法,它将返回字符串“w”中第一个元音所在位置的整数值。我已经创建了First方法来查找某个位置是否有元音,但是当我尝试在新方法中使用该方法时,它会说“找不到符号-方法is元音()”。有人知道这是为什么以及如何修复它吗?我已经被告知我必须在新方法中使用isVowel方法。该错误突出显示了上一个方法中使用的术语“is元音() public class words { private String w; /** * Def

我正在尝试编写一个方法,它将返回字符串“w”中第一个元音所在位置的整数值。我已经创建了First方法来查找某个位置是否有元音,但是当我尝试在新方法中使用该方法时,它会说“找不到符号-方法is元音()”。有人知道这是为什么以及如何修复它吗?我已经被告知我必须在新方法中使用isVowel方法。该错误突出显示了上一个方法中使用的术语“is元音()

public class words
    {
        private String w;

        /**
         * Default Constructor for objects of class words
         */
        public words()
        {
            // initialise instance variables
            w="";
        }

        /**
         * Assignment constructor
         */
        public words(String assignment)
        {
            w=assignment;
        }

        /**
         * Copy constructor
         */
        public words(words two)
        {
            w=two.w;
        }

        /**
         * Pre: 0<=i<length( )
         * returns true if the character at location i is a vowel (‘a’, ‘e’, ‘i', ‘o’, ‘u’ only), false if not
         */
        public boolean isVowel(int i)
        {
            if (w.charAt(i)=='a')  
                return true; 
            else if (w.charAt(i)=='e')
                return true;
            else if (w.charAt(i)=='i')
                return true;
            else if (w.charAt(i)=='o')
                return true;
            else if (w.charAt(i)=='u')
                return true;
            else return false;
        }
        /**
         * determines whether the first vowel in the String is at location 0, 1, 2, or 3 (don’t worry about exceptions)
         */
        private int findFirstVowel()
        {
            return w.indexOf(w.isVowel());
        }
公共类单词
{
私有字符串w;
/**
*类词对象的默认构造函数
*/
公共词汇
{
//初始化实例变量
w=“”;
}
/**
*赋值构造函数
*/
公共词(字符串赋值)
{
w=分配;
}
/**
*复制构造函数
*/
公共词汇(单词二)
{
w=2.w;
}
/**

*Pre:0您需要迭代
w
的有效索引,然后您可以使用
isvouel(int)
方法进行检查

private int findFirstVowel()
{
    for (int i = 0; i < w.length(); i++) {
        if (isVowel(i)) {
            return i;
        }
    }
    return -1;
}

另一种可能性也是:

public boolean isVowel(int i) 
{
    char ch = Character.toLowerCase(w.charAt(i));
    switch(ch) {
        case 'a: case'e': case'i': case 'o': case 'u':
            return true;
    }
    return false;
}

此外,“y”通常是元音。您的算法为“system”、“syzygy”、“why”等词提供了不正确的元音数。

w.isVowel()
-
w
是一个字符串,但它没有该方法。这就是错误所表明的。好吧,如果我需要在该方法中使用该方法,您建议我如何使用它?您需要从根本上重新思考您的
findFirstVowel()开始解释你是如何用简单的英语来做这件事的,然后试着把它翻译成代码。谢谢你的建议,大多数时候人们不认为“Y”是一个元音,所以它被忽略了。
public boolean isVowel(int i) 
{
    char ch = Character.toLowerCase(w.charAt(i));
    switch(ch) {
        case 'a: case'e': case'i': case 'o': case 'u':
            return true;
    }
    return false;
}