如何统计字符串中的大写元音与小写元音?Java程序输出异常求助
解决Java大小写元音统计输出异常的问题
首先,先梳理下做这类统计时最容易踩的几个坑,你可以对照自己的代码排查:
- 元音集合定义不全/错误:比如只定义了小写元音
aeiou却漏掉大写的AEIOU,或者不小心写错了某个元音字符(比如把u写成v) - 字符判断逻辑出错:比如在判断字符是否属于元音时,用了错误的比较方式——虽然char是基本类型用
==没问题,但如果是转成String后用==对比就会出错,得用equals() - 计数变量初始化/更新错误:比如把大小写元音计数器共用了一个变量,或者没初始化为0就开始累加
- 遍历字符串时的边界问题:比如循环条件写错,导致少遍历了最后一个字符
下面给你一个经过验证的正确示例代码,你可以对比自己的代码找差异:
public class VowelCounter { public static void main(String[] args) { String input = "Hello WORLD! Let's count the vowels"; int lowerVowelCount = 0; int upperVowelCount = 0; // 明确定义大小写元音的范围 char[] lowerVowels = {'a', 'e', 'i', 'o', 'u'}; char[] upperVowels = {'A', 'E', 'I', 'O', 'U'}; for (char c : input.toCharArray()) { // 检查小写元音 for (char v : lowerVowels) { if (c == v) { lowerVowelCount++; break; } } // 检查大写元音 for (char v : upperVowels) { if (c == v) { upperVowelCount++; break; } } } System.out.println("小写元音数量:" + lowerVowelCount); System.out.println("大写元音数量:" + upperVowelCount); } }
如果对照后还是找不到问题,欢迎把你的代码贴出来,我们可以一起定位具体的bug!
内容的提问来源于stack exchange,提问作者B.Nishan
相关产品推荐
相关产品推荐

