java - 我需要计算元音和辅音,但我对辅音感到困惑
问题描述
我不知道如何同时拥有元音和辅音。代码的元音部分工作正常。我不知道如何添加辅音。
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++;
}
}
}
}
我似乎无法弄清楚代码的辅音部分
解决方案
您的代码还将计算其他非辅音字符。这是计算元音和辅音的简单方法:
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++;
}
}
推荐阅读
- python - 计算两个数据帧之间的差异并在差异最小时映射
- vba - 如何遍历visio中的一些形状?
- django - 使用 django annotate 处理百分比
- java - 使用 Apache Poi 从具有固定位置的模板复制表
- python - 在 SqlAlchemy 中,如何使用 DateTime 列的日期部分和另一列创建 UniqueConstraint?
- python - 使用 Robot 框架,我如何解析 XML 并验证数据?
- python - 如何在 pyspark 上创建分层拆分训练、验证和测试集?
- ruby-on-rails - 为什么 Geocoder.search("Sam Francisco") 返回“大马士革,叙利亚”?
- excel - 在 Excel 中,我如何找到命名范围中最小值的单元格引用
- mysql - 如何创建一个由两个外键组成的复合键引用其他表的表?