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

Java中如何从String字符串中移除已知的指定文本片段

Java移除字符串中固定前缀片段的实现方案

你可以根据使用的Java版本、以及是否确定固定片段一定出现在字符串开头,选择对应的实现方式:

  • 确定固定片段一定是字符串前缀的场景,直接用substring截取,性能最优
    待移除的固定片段长度不需要手动计算,直接调用前缀字符串的length()方法获取即可,避免硬编码长度带来的维护问题:
    public class UrlProcessDemo {
        public static void main(String[] args) {
            String originalStr = "https://www.thetimes.co.uk/article/record-level-of-poorer-teens-aiming-for-a-degree-m6q6bfbq3";
            String fixedSegment = "https://www.thetimes.co.uk/article/";
            
            // 直接截取固定片段长度之后的内容
            String target = originalStr.substring(fixedSegment.length());
            // 输出结果:record-level-of-poorer-teens-aiming-for-a-degree-m6q6bfbq3
            System.out.println(target);
        }
    }
    
  • 无法确定原字符串一定带该固定前缀的场景,先做前缀校验避免索引越界
    用startsWith方法先判断前缀是否存在,再执行截取,不存在对应前缀时可以按业务需求返回原字符串或做其他处理:
    String target;
    if (originalStr.startsWith(fixedSegment)) {
        target = originalStr.substring(fixedSegment.length());
    } else {
        target = originalStr; // 无匹配前缀时直接返回原字符串
    }
    
  • Java 11及以上版本可以直接用内置的stripPrefix方法,代码最简洁
    该方法自带前缀匹配逻辑,没有匹配到对应前缀时会直接返回原字符串,不需要自己写判断:
    String target = originalStr.stripPrefix(fixedSegment);
    
  • 如果固定片段不是仅出现在开头,需要全局删除所有匹配的片段,用replace方法即可:
    // 会替换原字符串中所有出现的固定片段,不是仅处理前缀
    String target = originalStr.replace(fixedSegment, "");
    

注意:replace方法会替换所有匹配的子串,如果你的需求只是移除开头的那一段固定前缀,优先选择前面三种方案,避免误删字符串其他位置出现的相同片段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 14:48:21