如何找到方法的符号

时间:2014-11-02 16:24:33

标签: java

我正在尝试获取用户输入的字符串并返回字符串中的元音。我得到的错误如下:

> VowelsA3.java:13: error: cannot find symbol
>            if (isVowel.isVowelValid(letter) = true)
>                       ^   symbol:   method isVowelValid(char)   location: class isVowel

这是我的代码“VowelsA3”(我的主要不会编译):

import java.util.Scanner;
public class VowelsA3 
{
      public static void main (String[] args) 
   {
      Scanner scan = new Scanner(System.in);
      System.out.println("Please enter a string.");
      String userInput = scan.nextLine();
      char letter = 'x';
      for (int i = 0; i <= userInput.length(); i++) 
      {
           letter = userInput.charAt(i);
           if (isVowel.isVowelValid(letter) = true)
          { 
            System.out.println(letter);
          }          
      }      
    }   
} 

这是我编译的方法“isVowel”:

public class isVowel 
{
    public static boolean isValidVowel(char letter)
    {
      boolean trueVowel = false;
      {
      if (letter == 'a' || letter == 'e' || letter == 'i' || letter == 'o' || letter == 'u')
      {
          trueVowel = true;
      }
      else
      {
          trueVowel = false;  
      }
      return trueVowel;
      }
    }
 }

有什么想法吗?我被告知我是一个白痴,因为错误是因为我的方法返回了一个真/假,但是我认为我必须这样做,以便if语句能够正常工作 - “== true”没有我询问返回值是否为真我不知道它是否是元音,对吧?

5 个答案:

答案 0 :(得分:0)

您需要使用CLASSNAME.STATIC_METHOD_NAME(PARAMETERS)

if (isVowel.isValidVowel(letter) == true)

而不是

if (isVowel(letter) == true)

因为你将isVowel作为类名,所以你不能使用classname(参数)而是需要使用classname.isVowel方法。

此外,您需要更改

的循环
for (int i = 0; i <= userInput.length(); i++) 

for (int i = 0; i < userInput.length(); i++) 

另外,为了比较,您应该使用

 if (isVowel.isVowelValid(letter)) //or use ==

而不是

 if (isVowel.isVowelValid(letter) = true)

答案 1 :(得分:0)

isVowel是一个类,isValidVowel()是此类中的一个方法。因此,您应该致电

isVowel.isValidVowel(letter).isValidVowel 

而不是isVowelValid

您应该致电isVowel.isValidVowel(letter) == true.

实际上因为isValidVowel(letter)返回true/false,您不需要check == true。只需致电

if (isVowel.isValidVowel(letter))
    System.out.println(letter);

答案 2 :(得分:0)

isVowelValid
isValidVowel

Typo警报。这些都不一样。

在更正拼写错误后,这也是编译错误:

//                               v
if( isVowel.isValidVowel(letter) = true )

=是赋值运算符。您的意思是使用==进行比较。

答案 3 :(得分:0)

您定义的方法称为:

isValidVowel

您正在调用的方法是:

isVowelValid

看到区别?您正在调用的方法名称与您定义的方法名称不同。

将您的调用更改为:

if (isVowel.isValidVowel(letter) == true)

然后它会起作用。

(请注意,您需要使用比较运算符==而不是分配操作=,或者您可以完全删除整个== true部分。

答案 4 :(得分:0)

if(...)中的VowelsA3更改为

       if (isVowel.isValidVower(letter)) 

而不是

      if (isVowel.isVowelValid(letter) = true)