2016-04-05 23 views
0

Bir dizede sesli harfler ve ünsüz sayısının sayılmasıyla ilgili bu kodu tamamlarken sorun yaşıyorum. Ne zaman ben her iki getVowelCount yöntemi için bir dize göndermek ve getConstCount yöntemi bir hata olduğu ortaya çıktığında, sorunun her iki yöntem için döngü içinde çalıştığını inanıyorum. dize ama emin değilim. Ben dizisindekiSesli ve Boynuzlu Sesler Java

İstisna olsun "ana" java.lang.NullPointerException/DCMvowelsAndConsonants.getVowelCount (DCMvowelsAndConsonants.java:30) de/DCMvowelsAndConsonantsDriver.main (DCMvowelsAndConsonantsDriver.java:40) de

ben Bu zaten büyük olduğundan, sürücüyü yüklemem gerekip gerekmediğinden emin değilim.

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 * "Ben senin koduyla bir sorun görmüyorum." * Sonra kurucular – Tom

+0

@Tom Facepalm tekrar kontrol edin. Cevabınızı göndermek için çekinmeyin. –

+1

@TimBiegeleisen Kolay bir üne sahip olmak yerine çiftçiyi aramayı tercih ediyorum (burada diğer kişiler gibi: D: P [siz değil :)]). – Tom

cevap

4

"String" bölümünü kaldırmak için kurucunuzu değiştirin. Bu, üye değişkeninize atanmak yerine yerel bir değişken bildirmek ve buna atama yapmaktır.

public DCMvowelsAndConsonants() 
    { 
     line = " "; 
    } 

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

haha ​​vay o küçük hatalar teşekkür –

+0

@DanielCharles yardım için teşekkür ederiz. Size yardımcı olması durumunda bu cevabı kabul etmekte çekinmeyin. – Buddy

0

Senin sorunun sizin kurucular ile geçerli: gibi

yüzden bakmak gerekir. Kurucuda yeni bir değişken oluşturuyorsunuz. olarak kurucular değiştirin:

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

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