Java 尝试计算元音、辅音和空格,但忽略其他字符';s

Java 尝试计算元音、辅音和空格,但忽略其他字符';s,java,Java,这是我的代码,它工作得很好(我想),但是如果我想在一个句子中输入一些其他字符,比如“,*:;”等等,那么它们肯定会被算作辅音 有没有一种方法可以在不键入所有非元音字符的情况下缩短此长度 另外,我知道我可以用“ignoreCase()”来代替键入元音的所有大写字母,但我在键入元音后意识到了这一点,我太固执了,无法改变:D public void compute() { for (int i = 0; i < str.length(); i++) { if (str.c

这是我的代码,它工作得很好(我想),但是如果我想在一个句子中输入一些其他字符,比如“,*:;”等等,那么它们肯定会被算作辅音

有没有一种方法可以在不键入所有非元音字符的情况下缩短此长度

另外,我知道我可以用“ignoreCase()”来代替键入元音的所有大写字母,但我在键入元音后意识到了这一点,我太固执了,无法改变:D

public void compute() {
    for (int i = 0; i < str.length(); i++) {
        if (str.charAt(i) == 'a' || str.charAt(i) == 'e' || str.charAt(i) == 'i' || str.charAt(i) == 'o' || str.charAt(i) == 'u' || str.charAt(i) == 'A'
                || str.charAt(i) == 'E' || str.charAt(i) == 'I' || str.charAt(i) == 'O' || str.charAt(i) == 'U') {
            vowels++;
        } else if (str.charAt(i) == ' ') {
            spaces++;
        } else {
            cons++;
        }
    }
}
public void compute(){
对于(int i=0;i
您可以使用
Character.isleter
方法检查字符是有效字母还是某些特殊字符。以下是Isleter方法的说明:

公共静态布尔值计数器(char-ch)

确定指定的字符是否为字母。一个角色是 如果其一般类别类型由 Character.getType(ch)是以下任一项:

  • 大写字母
  • 小写字母
  • 标题字母
  • 修饰字母
  • 其他信
并不是所有的信都有大小写。许多字符是字母,但两者都不是 大写、小写或标题


显而易见的替代方案是这样的:

String vowels = "aeiou";
然后:

if (vowels.contains(str.substring(i,i+1)){
    vowels++;
}

当然,您可以创建集合,但有什么意义呢?

它看起来像..if(str.charAt(i).Character.isleter==true)??我从来没有使用过我第一次猜测的方法though@Adam不,应该是:Character.isleter(str.charAt(i))不知道,will