You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java面试准备:如何检查字符串是否含字符数组元素并统计元音数量

Hey there! 既然你正在重拾Java准备面试,我来帮你把那段统计元音的Python代码转换成Java实现,顺便梳理下关键知识点,帮你快速回忆~

统计句子中元音字母数量的Java实现

首先先还原你给出的Python代码片段(看起来你还没写完else部分,不过核心逻辑已经清晰了):

vowels = ('a', 'e', 'i', 'o', 'u') #tuple containing vowels
sentence = "Refreshing my memory on java"
vowels_count = 0; consonant_count = 0;
for s in sentence:
    if s in vowels:
        vowels_count += 1
    # 这里应该补充辅音统计逻辑(注意排除非字母字符)

基础循环实现(最贴近你的Python逻辑)

这是最直观的写法,和你的Python思路完全对齐,适合面试时展示基础语法掌握:

public class VowelCounter {
    public static void main(String[] args) {
        // 用Set存储元音,查询效率更高(O(1)),也可以用数组/字符串判断
        java.util.Set<Character> vowels = java.util.Set.of('a', 'e', 'i', 'o', 'u');
        String sentence = "Refreshing my memory on java";
        int vowelCount = 0;
        int consonantCount = 0;
        
        // 遍历字符串的每个字符
        for (char c : sentence.toCharArray()) {
            // 统一转小写,避免遗漏大写元音(比如原句中的'E')
            char lowerCaseChar = Character.toLowerCase(c);
            if (vowels.contains(lowerCaseChar)) {
                vowelCount++;
            } else if (Character.isLetter(lowerCaseChar)) {
                // 只统计字母类的辅音,排除空格、数字等非字母字符
                consonantCount++;
            }
            // 非字母字符直接跳过
        }
        
        System.out.println("元音数量: " + vowelCount);
        System.out.println("辅音数量: " + consonantCount);
    }
}

简化写法(Java 8+ Stream API)

如果面试时想展示对现代Java特性的了解,可以用Stream流实现,代码更简洁:

import java.util.Set;

public class VowelCounterStream {
    public static void main(String[] args) {
        Set<Character> vowels = Set.of('a', 'e', 'i', 'o', 'u');
        String sentence = "Refreshing my memory on java";
        
        // 统计元音
        long vowelCount = sentence.chars()
                .mapToObj(c -> Character.toLowerCase((char) c))
                .filter(vowels::contains)
                .count();
        
        // 统计辅音
        long consonantCount = sentence.chars()
                .mapToObj(c -> Character.toLowerCase((char) c))
                .filter(c -> Character.isLetter(c) && !vowels.contains(c))
                .count();
        
        System.out.println("元音数量: " + vowelCount);
        System.out.println("辅音数量: " + consonantCount);
    }
}

面试高频知识点提醒

  • 大小写处理:一定要统一转换为小写/大写,否则会漏统计A/E这类大写元音
  • 集合选择:用Set存储元音比数组更高效,因为contains()方法的时间复杂度是O(1)
  • 边界情况:别忘记排除非字母字符(比如空格、符号),否则会把这些误统计为辅音
  • Stream API:Java 8+的流操作是面试常考点,能体现你对现代Java的掌握程度

内容的提问来源于stack exchange,提问作者answerSeeker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:25:18