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

Java如何修改代码实现删除字符串内指定字母的所有出现

问题修改方案

你不用纠结多索引拼接的复杂逻辑,下面三种简单改法都可以实现删除指定字符所有出现的需求:

方案1:遍历字符拼接(最直观,性能稳定)

直接遍历输入字符串的每一个字符,只要不是要删除的目标字符就拼到结果里,完全不需要处理索引切割逻辑:

public static String removeChar(String text, char c) {
    StringBuilder result = new StringBuilder();
    for (int i = 0; i < text.length(); i++) {
        char current = text.charAt(i);
        if (current != c) {
            result.append(current);
        }
    }
    return result.toString();
}

用StringBuilder是为了避免循环拼接String产生过多临时对象,短文本场景下直接用String拼接也可以正常运行。

方案2:沿用原有切割逻辑循环删除

如果你还是想保留你原来的索引切割思路,只要加一层循环反复查找目标字符位置,直到indexOf返回-1(代表没有剩余目标字符)即可:

public static String removeChar(String text, char c) {
    String result = text;
    int i1;
    while ((i1 = result.indexOf(c)) != -1) {
        result = result.substring(0, i1) + result.substring(i1 + 1);
    }
    return result;
}

方案3:直接调用JDK内置方法(最简写法)

String类自带的replace方法本身就会替换所有匹配的字符/字符串,一行代码就能搞定需求:

public static String removeChar(String text, char c) {
    return text.replace(Character.toString(c), "");
}

以上三种方案任意改完后,运行你的main方法都可以得到预期输出Ths txt my b rdbl witht vwls!。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:06:04