无法弄清楚为什么int在Java中重复

时间:2016-02-21 12:32:33

标签: java

我正在创建一个简单的Java程序,在主类中请求一个字符串(输入),然后打印出字符串中有多少元音(int count)和辅音。元音的数量完美,但辅音的数量加倍,所以字符串"詹姆斯"根据我的计划,有2个元音和6个辅音。

public class counter {

vowels p1 = new vowels();

public int con = 0;

public int count() {

    String input = p1.getInput();

    int i = 0;
    int count = 0;

    while (i < input.length()){

        if (input.charAt(i) == 'a' || input.charAt(i) == 'e' || input.charAt(i) == 'i' || input.charAt(i) == 'o' || input.charAt(i) == 'u') {

        count++;

        } else if (input.charAt(i) != ' ') {
            con++;
        }
    i++;
    }

    return count;

}

public int con() {
    return con;
}
}

4 个答案:

答案 0 :(得分:2)

您正在使用实例成员con来计算辅音,并且您不会在count方法的开头对其进行初始化,因此多次调用该方法将导致无效计数。

答案 1 :(得分:0)

好像你正在使用 int con = 0;

用于辅音计数 所以不要使用

else if (input.charAt(i) != ' ') {
        con++;
    }

简单地使用  else { con++; }

替代: 从字符串长度中减去元音数 'com = P1.length() - count;'

答案 2 :(得分:0)

尝试在方法“count”的开头将变量con设置为零。

con = 0;

我希望它有效。

答案 3 :(得分:0)

char ch;
for(int i = 0; i < str.length(); i ++)
        {
            ch = str.charAt(i);

            if(ch == 'a' || ch == 'A' || ch == 'e' || ch == 'E' || ch == 'i' || 
            ch == 'I' || ch == 'o' || ch == 'O' || ch == 'u' || ch == 'U')
                count ++;
            else 
                con;
       }

当你的元音在我的代码中解决了这个问题时,你已经认真考虑了这个案例

希望我的代码在这方面帮助你。谢谢。快乐编码