2014-11-02 77 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)