gpt4 book ai didi

java元音计数器使用开关方法

转载 作者:行者123 更新时间:2023-12-04 05:27:35 26 4
gpt4 key购买 nike

我应该编写一个简单的 java 应用程序,计算用户输入的字符串中的每个元音并输出每个元音出现的次数。

我不明白为什么我的代码要检查字符串中的每个单词。我为每个单词获得了适量的元音。这是我所拥有的:

import java.util.Scanner;

public class VowelAnalyst
{
//
//

public static void main (String[] args)
{
String userString;
int aCount = 0, eCount = 0, iCount = 0, oCount = 0, uCount = 0;
char vowels;

Scanner scan = new Scanner (System.in);

System.out.println ("enter string:");
userString = scan.nextLine();

for (int count = 0; count < userString.length(); count++)
{

vowels = userString.charAt(count);

switch (vowels)
{
case 'a':
aCount++;
break;

case 'e':
eCount++;
break;

case 'i':
iCount++;
break;

case 'o':
oCount++;
break;

case 'u':
uCount++;
break;

default:
System.out.println ("Please enter valid string.");

}

System.out.println ("a: " +aCount);
System.out.println ("e: " +eCount);
System.out.println ("i: " +iCount);
System.out.println ("o: " +oCount);
System.out.println ("u: " +uCount);
}
}
}

最佳答案

可能您应该将下面的打印语句移出 for 循环,否则它们将在比较每个字符后打印计数:-

System.out.println ("a: " +aCount);
System.out.println ("e: " +eCount);
System.out.println ("i: " +iCount);
System.out.println ("o: " +oCount);
System.out.println ("u: " +uCount);

更新 :-

虽然你这样做的方式还不错,但是如果你维护一个 Map<Character, Integer>会更好。存储每个 Vowel 的计数.您需要使用每个字符的初始计数 0 来初始化您的 Map,然后在读取每个字符时,如果在 Map 中找到匹配,只需增加计数。

这是一个示例片段:-
// This is `double-braces` initialization. 
// You can rather initialize your Map in a way you are comfortable with
Map<Character, Integer> vowels = new HashMap<Character, Integer>() {
{
put('a', 0);
put('e', 0);
put('i', 0);
put('o', 0);
put('u', 0);
}
}; // Note the semi-colon here

然后你在 for 循环中从字符串中读取每个字符的代码: -
for (int count = 0; count < userString.length(); count++)
{
char ch = userString.charAt(count);
ch = Character.toLowerCase(ch);

if (vowels.containsKey(ch)) {
vowels.put(ch, vowels.get(ch) + 1);
}
}

System.out.println(vowels); // Will print each vowels with respective count

关于java元音计数器使用开关方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13018361/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com