2016-04-05 49 views
0

我在計算字符串中元音和輔音的數量時,無法完成此代碼。 當我發送一個字符串到類都getVowelCount方法和getConstCount方法結果是一個錯誤我相信問題是在兩個方法的for循環,我嘗試和調用isLetter方法與特定字符的字符串,但我不確定。我得到元音和輔音Java

異常線程 「main」 顯示java.lang.NullPointerException /在DCMvowelsAndConsonants.getVowelCount(DCMvowelsAndConsonants.java:30)/在DCMvowelsAndConsonantsDriver.main(DCMvowelsAndConsonantsDriver.java:40)

我我不確定我是否應該發佈驅動程序,因爲這已經很大。

public class DCMvowelsAndConsonants 
{ 
    String line; 

    public DCMvowelsAndConsonants() 
    { 
     String line = " "; 
    } 

    public DCMvowelsAndConsonants(String l) 
    { 
     String line = l; 
    } 

    public static boolean isLetter(char i) 
    { 
     return i == 'a' || i == 'A' || i == 'e' || i == 'E' || i == 'i' || i == 'I' || i == 'o' || i == 'O' || i == 'u' || i == 'U'; 
    } 

    public int getVowelCount() 
    { 
     int vowelCount = 0; 

     for(int i = 0; i < line.length(); i++) 
     { 
     if(isLetter(line.charAt(i))) 
      vowelCount++; 
     } 
     return vowelCount; 
    } 

    public int getConstCount() 
    { 
     int constCount = 0; 

     for(int i = 0; i < line.length(); i++) 
     { 
     if(!isLetter(line.charAt(i))) 
      constCount++; 
     } 
     return constCount; 
    } 
} 
+4

@TimBiegeleisen *「我看不出你的代碼有問題。」 *然後重新檢查他的構造 – Tom

+0

@湯姆捂臉。隨時發佈您的答案。 –

+1

@TimBiegeleisen我更喜歡尋找一個愚蠢的玩具,而不是像其他人那樣耕種輕鬆的聲望(像其他人一樣:D:P [你:) :))。 – Tom

回答

4

更改您的構造函數以刪除「String」部分。這是聲明一個局部變量並賦值給它,而不是分配給你的成員變量。

因此,他們應該像:

public DCMvowelsAndConsonants() 
    { 
     line = " "; 
    } 

    public DCMvowelsAndConsonants(String l) 
    { 
     line = l; 
    } 
+0

哈哈哇那些小錯誤謝謝 –

+0

@DanielCharles很樂意幫忙。如果它幫助你,請隨時接受這個答案。 – Buddy

0

你的問題是你的構造。您正在構造函數中創建一個新變量。作爲替換您的構造函數:

public DCMvowelsAndConsonants() { 
     this.line = " "; 
} 

public DCMvowelsAndConsonants(String l) { 
     this.line = l; 
} 
相關問題