2016-04-05 5 views
0

Ich habe Schwierigkeiten, diesen Code über das Zählen der Anzahl der Vokale und Konsonanten in einer Zeichenfolge zu beenden. Immer, wenn ich eine Zeichenfolge an die Klasse übergebe sowohl getVowelCount Methode und getConstCount Methode entpuppt sich als ein Fehler Ich glaube, das Problem ist in der for-Schleife beider Methoden, wo ich versuche und die isLetter-Methode mit dem bestimmten Zeichen der aufrufen String, aber ich bin mir nicht sicher. IVokale und Konsonanten Java

Exception in thread "main" java.lang.NullPointerException/at DCMvowelsAndConsonants.getVowelCount (DCMvowelsAndConsonants.java:30) erhalten/at DCMvowelsAndConsonantsDriver.main (DCMvowelsAndConsonantsDriver.java:40)

I Ich bin mir nicht sicher, ob ich den Treiber posten sollte, da dieser bereits groß ist.

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 * „Ich habe kein Problem mit Ihrem Code.“ * Dann – Tom

+0

@ Tom Facepalm seine Konstrukteure erneut prüfen. Fühlen Sie sich frei, Ihre Antwort zu posten. –

+1

@TimBiegeleisen Ich suche lieber nach einem Betrogenen, statt einfachen Rufes zu pflegen (wie andere Personen hier: D: P [nicht Sie :)]). – Tom

Antwort

4

Ändern Sie Ihre Konstruktoren, um den "String" -Teil zu entfernen. Das deklariert eine lokale Variable und weist diese der Variablen zu, anstatt sie der Variablen zuzuweisen.

So sollten sie wie folgt aussehen:

public DCMvowelsAndConsonants() 
    { 
     line = " "; 
    } 

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

haha ​​wow diese kleinen Fehler Danke –

+0

@DanielCharles froh zu helfen. Fühlen Sie sich frei, diese Antwort zu akzeptieren, wenn es Ihnen geholfen hat. – Buddy

0

Ihr Problem mit Ihrem Erbauer ist. Sie erstellen eine neue Variable im Konstruktor. Ersetzen Sie Ihre Konstrukteure wie:

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

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