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

如何不使用正则删除Java字符串数组各元素中的特殊字符

问题排查

原代码存在以下错误:

  • 缺少内层循环遍历单个字符串的所有字符:原代码仅用数组下标i作为字符串的字符索引,不仅无法覆盖字符串全部字符,当字符串长度小于数组长度时还会触发索引越界异常
  • 结果数组元素初始为null,直接执行+=拼接操作会把null作为字符串前缀拼入结果,导致输出异常
  • 分支逻辑错误:只要遇到非字母字符就直接将当前元素赋值为空串,会丢失该位置之前已经匹配到的合法字母
正确实现
public static String[] removeCharacters(String[] arr){
    // 初始化结果数组,长度和输入数组一致
    String[] result = new String[arr.length];
    // 外层遍历每个数组元素
    for (int i = 0; i < arr.length; i++) {
        StringBuilder sb = new StringBuilder();
        String current = arr[i];
        // 内层遍历当前字符串的每个字符
        for (int j = 0; j < current.length(); j++) {
            char c = current.charAt(j);
            // 仅保留字母字符
            if (Character.isLetter(c)) {
                sb.append(c);
            }
        }
        result[i] = sb.toString();
    }
    return result;
}
验证示例

输入["Hel123&$$o", "#$%World", "###"],运行方法后返回结果为["Hello", "World", ""],完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:15:02