首页 > 解决方案 > 我需要计算元音和辅音,但我对辅音感到困惑

问题描述

我不知道如何同时拥有元音和辅音。代码的元音部分工作正常。我不知道如何添加辅音。

import java.util.Scanner;

public class Main
{
   public static void main(String args[])
   {
      Scanner in = new Scanner(System.in);

      System.out.println("Enter some text: ");
      String str = in.nextLine();
      System.out.println(str);

System.out.print("your input has " + count_Vowels(str) + "vowels");
    }
 public static int count_Vowels(String str)
    {
        int vcount = 0;
        for (int i = 0; i < str.length(); i++)
        {
            char ch = str.charAt(i);
            if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u')
            {
              vcount++;
            }
        }
        return vcount;
    }
public static int count_Consanants(String str)
    {
      int ccount = 0;
      for (int i = 0; i < str.length(); i++)
    {
      char ch = str.charAt(i);
      if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u')
      {
        vcount++;
      }
      else
      {
        consonants++;
      }
    }
  }  
}

我似乎无法弄清楚代码的辅音部分

标签: java

解决方案


您的代码还将计算其他非辅音字符。这是计算元音和辅音的简单方法:

for (int i = 0; i < str.length(); i++) {    
    //Checks whether a character is a vowel
    if (str.charAt(i) == 'a' || str.charAt(i) == 'e' || str.charAt(i) == 'i' || str.charAt(i) == 'o' || str.charAt(i) == 'u') {      
        vCount++;    
    }    
    //Checks whether a character is a consonant    
    else if (str.charAt(i) >= 'a' && str.charAt(i)<='z') {        
        cCount++;    
    }    
}    

同样,您也可以修改大写字符的代码。


略显优雅:

Set<Character> vowels = new HashSet<>(Arrays.asList('a', 'e', 'i', 'o', 'u'));

for (int i = 0; i < str.length(); i++) {
    char c = str.charAt(i);
    if (vowels.contains(c)) {
        vCount++;
    } else if (c >= 'a' && c <= 'z') {
        cCount++;
    }
}

推荐阅读