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

Java实现removeVowels方法遇char类型初始化非法错误求助

修正Java中removeVowels方法的实现错误

原代码的核心错误

  • 数组定义错误:原代码将元音列表声明为char vowels = { ... },单个char变量无法存储多个字符,需改为char[]或Set<Character>。
  • 语法误用:错误使用C++的find()、begin()、end()方法,Java中无此类语法,需用Java原生API判断字符是否为元音。
  • 字符串/数组操作错误:试图直接对字符串数组调用replace(),且逻辑上错误地判断整个字符串是否为元音,而非逐个字符过滤。
  • 返回值不匹配:方法声明为void却返回数组,违反Java语法规则。

修正后的完整代码

U6_L3_Activity_Two类

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

public class U6_L3_Activity_Two {
    public static void removeVowels(String[] words) {
        // 用Set存储元音,判断字符是否为元音的效率更高
        Set<Character> vowels = new HashSet<>(Arrays.asList('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'));
        
        // 遍历数组中的每个字符串
        for (String word : words) {
            StringBuilder filtered = new StringBuilder();
            // 逐个检查字符串中的字符
            for (char c : word.toCharArray()) {
                // 非元音字符保留
                if (!vowels.contains(c)) {
                    filtered.append(c);
                }
            }
            // 逐行输出过滤后的结果
            System.out.println(filtered.toString());
        }
    }
}

runner_U6_L3_Activity_Two类(无需修改)

import java.util.Scanner;

public class runner_U6_L3_Activity_Two
{
  public static void main(String[] args)
  {
    Scanner scan = new Scanner(System.in);
    System.out.println("Enter array length:");
    int len = scan.nextInt();
    scan.nextLine();
    String[] wordList = new String[len];
    System.out.println("Enter values:");
    for(int i = 0; i < len; i++)
    {
      wordList[i] = scan.nextLine();
    }
    U6_L3_Activity_Two.removeVowels(wordList);
  }
}

代码说明

  1. 元音存储:使用HashSet存储元音字符,contains()方法可在O(1)时间内判断字符是否为元音,比遍历数组更高效。
  2. 字符过滤:用StringBuilder拼接非元音字符,避免字符串拼接带来的性能损耗(String为不可变对象,每次拼接都会生成新实例)。
  3. 输出逻辑:遍历每个字符串,过滤后直接逐行输出,完全符合题目要求。
  4. 语法合规:方法保持void类型,无需返回数组(调用方未接收返回值),避免语法错误。

测试示例

输入数组{"every", "nearing", "checking", "food", "stand", "value"},输出结果:

vry
nring
chckng
fd
stnd
vl

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 17:25:16