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

如何在Java中替换文本中特定单词后的字符串?

优雅实现Java中特定单词后字符串的替换

方案一:使用极简正则表达式(推荐)

不需要复杂的正则语法,用String.replaceFirst就能快速实现需求,核心是精准匹配目标单词后的第一个非空白字符串并替换:

String originalText = "Today we have an IKAR ME123 from Greece.";
String modifiedText = originalText.replaceFirst("(\\bIKAR\\s+)\\S+", "$1XXXX");
System.out.println(modifiedText);
// 输出:Today we have an IKAR XXXX from Greece.

正则说明:

  • \bIKAR\b:确保匹配完整的IKAR单词(避免误匹配包含IKAR的其他单词,比如IKAR123)
  • \s+:匹配IKAR后面的一个或多个空格
  • (\bIKAR\s+):将IKAR和后续空格作为分组,替换时用$1保留这部分内容
  • \S+:匹配IKAR后面的目标单词(所有非空白字符)

方案二:纯字符串操作(无需正则)

如果完全不想使用正则,可以通过字符串索引定位实现,逻辑直观:

String originalText = "Today we have an IKAR ME123 from Greece.";
String targetWord = "IKAR";
String replacement = "XXXX";
String modifiedText = originalText;

int targetPos = modifiedText.indexOf(targetWord);
if (targetPos != -1) {
    // 定位到目标单词后的第一个空格
    int afterTargetSpace = modifiedText.indexOf(' ', targetPos + targetWord.length());
    if (afterTargetSpace != -1) {
        // 定位到下一个空格,确定要替换单词的结束位置
        int nextSpace = modifiedText.indexOf(' ', afterTargetSpace + 1);
        if (nextSpace == -1) {
            // 目标单词是文本最后一个内容
            modifiedText = modifiedText.substring(0, afterTargetSpace + 1) + replacement;
        } else {
            // 截取拼接保留前后内容,替换中间单词
            modifiedText = modifiedText.substring(0, afterTargetSpace + 1) 
                    + replacement 
                    + modifiedText.substring(nextSpace);
        }
    }
}

System.out.println(modifiedText);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 12:25:19