2016-04-05 13 views
0

文字列の母音と子音の数を数えることについてこのコードを終了するのに問題があります。 文字列をクラスに送信すると、getVowelCountメソッドとgetConstCountメソッドの両方がエラーになることが判明しました。問題は、両方のメソッドのforループにあり、isLetterメソッドを文字列ですが、わかりません。私はスレッドで母音と子音Java

例外を取得し、 "メイン" のjava.lang.NullPointerException/DCMvowelsAndConsonants.getVowelCount(DCMvowelsAndConsonants.java:30)で/ DCMvowelsAndConsonantsDriver.main(DCMvowelsAndConsonantsDriver.java:40)で

Iこれはすでに大きいので、私はドライバを投稿する必要があるか分からない。

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

*「私はあなたのコードに問題が表示されていない。」*その後 – Tom

+0

@Tom手のひらを顔に当てる彼のコンストラクタを再確認します。あなたの答えを投稿してください。 –

+1

@TimBiegeleisen私は、簡単な評判を栽培するのではなく、欺瞞を探すのが好きです(他の人のように:D:P [あなたは:)])。 – Tom

答えて

4

「文字列」部分を削除するようにコンストラクタを変更します。これは、メンバー変数に代入する代わりに、ローカル変数を宣言して代入しています。

だから、彼らは次のようになります。

public DCMvowelsAndConsonants() 
    { 
     line = " "; 
    } 

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

笑こんにちは、これらの小さな間違いはありがとうございます。 –

+0

@DanielCharlesはうれしいです。それがあなたを助けた場合は、この回答を受け入れてください。 – Buddy

0

あなたの問題は、あなたのコンストラクタです。コンストラクタで新しい変数を作成しています。あなたのコンストラクタを置き換えます

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

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