2016-04-05 56 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; 
} 
相关问题