java - 返回字符串中的字符,返回辅音问题
问题描述
创建一个程序,读取用户输入的字符串,然后确定并打印每个小写元音(a、e、i、o 和 u)在整个字符串中出现的数量。每个元音都有一个单独的计数器。此外,计算并打印非元音字符的数量。
当我创建我的程序时,元音返回正常,但辅音值总是关闭。假设用户输入“我今天感觉很冷”,程序将辅音的值返回为19,而它应该将其返回为14。你能看看我的程序并帮助我确定为什么返回的辅音值总是错误的吗?
package CharacterCount;
import java.util.Scanner;
public class CharacterCount {
public static void main(String[] args) {
int a = 0, e = 0, x = 0;
int o = 0, u = 0, consonant = 0;
String str;
try (Scanner scan = new Scanner (System.in)) {
System.out.println("Enter a string");
str = scan.nextLine();
}
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c== 'a' || c== 'A') a++;
else if (c== 'e' || c== 'E') e++;
else if (c== 'i' || c== 'I') x++;
else if (c== 'o' || c== 'O') o++;
else if (c== 'u' || c== 'U') u++;
else consonant++;
}
System.out.println("a: " + a + "\n" +
"e: " + e + "\n" +
"i: " + x + "\n" +
"o: " + o + "\n" +
"u: " + u + "\n" +
"consonants:" + consonant);
}
}
解决方案
看起来您的程序当前会将空格字符视为辅音...因此您需要在增加辅音变量之前检查空格