2014-11-02 62 views
0

象征我把这个问题到另一个站点之前,但他们只是很粗鲁 - 我很新到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; 
     } 
    } 
} 

任何想法?我被告知我在错误是因为我的方法返回true/false而使用“== true”的白痴,但我认为我必须这样做,以便if语句可以工作 - 没有我问是否返回的值是真的我不知道它是不是元音,对吗?我在这里完全不知所措,这是我第一次使用方法,所以请在回答我的问题时考虑这一点。

在此先感谢。

回答

0

isVowel是一个类和isValidVowel()是这个类的内部的方法。因此,您应该致电 isVowel.isValidVowel(letter)。

isValidVowel代替isVowelValid。

你应该叫isVowel。 isValidVowel(letter)== true。

其实因为isValidVowel(字母)返回true/false,则不需要检查==真。只需拨打 如果(isVowel isValidVowel(字母)。) 的System.out.println(函);

+0

我是个白痴。好家伙。 – notywq 2014-11-02 16:36:15

+0

出错是正常的!^^!放轻松。 – DML 2014-11-02 16:44:55

0

您需要使用CLASSNAME.STATIC_METHOD_NAME(参数)

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

,而不是

if (isVowel(letter) == true) 

所以,既然你有isVowel的类名,所以你不能使用类名(参数),而不是你需要使用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) 
01使用
+0

我是个白痴。总数。 – notywq 2014-11-02 16:34:34

0
isVowelValid 
isValidVowel 

错字警报。这些不一样。

而且这将是一个编译错误,你改正错字后:

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

=是赋值运算符。你的意思是使用==这是比较。

0

你的方法,你定义它被称为:

isVowelValid 

看到区别:

isValidVowel 

您呼叫的方法?您调用的方法名称与您定义的方法名称不同。

您的调用更改为:

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

,然后它会工作。

(请注意,您需要使用比较操作==,而不是赋值操作=的,或者你可以完全整个== true部件拖放)

0

更改if(...)VowelsA3

 if (isVowel.isValidVower(letter)) 

而且不是

 if (isVowel.isVowelValid(letter) = true)