我无法完成有关计算字符串中元音和辅音数量的代码。 当我将一个字符串发送到类时,getVowelCount方法和getConstCount方法都变成了一个错误我认为问题出现在两个方法的for循环中,我尝试用字符串的特定字符调用isLetter方法但我不确定。我得到了
线程“main”中的异常java.lang.NullPointerException / at DCMvowelsAndConsonants.getVowelCount(DCMvowelsAndConsonants.java:30)/ at 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;
}
}
答案 0 :(得分:4)
更改构造函数以删除&#34; String&#34;部分。这是声明一个局部变量并分配给它,而不是分配给你的成员变量。
所以他们应该看起来像:
public DCMvowelsAndConsonants()
{
line = " ";
}
public DCMvowelsAndConsonants(String l)
{
line = l;
}
答案 1 :(得分:0)
你的问题在于你的构造函数。您正在构造函数中创建一个新变量。将构造函数替换为:
public DCMvowelsAndConsonants() {
this.line = " ";
}
public DCMvowelsAndConsonants(String l) {
this.line = l;
}