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

Java如何从字符串开头截取至指定单词末尾的子串?

Java字符串截取到指定单词末尾的高效实现方法

针对你的需求,其实你一开始想到的通过目标单词的结束索引调用substring就是最高效的方案之一,直接、低开销,代码也简洁:

String sentence = "I am an Administrator of my building";
String targetWord = "Administrator";
// 先找到目标单词的起始索引,加上单词长度得到结束位置
int endIdx = sentence.indexOf(targetWord) + targetWord.length();
String result = sentence.substring(0, endIdx);

为什么这个方案高效?

  • indexOf是String类的原生方法,底层直接操作字符数组,时间复杂度为O(n),性能极高;
  • substring在JDK8及以前直接复用原字符串的字符数组(仅记录起始结束索引),JDK9+虽会复制字符数组,但也是底层高效操作,无多余计算开销。

更简洁的写法(适合代码简洁性优先、非高频调用场景)

如果追求代码更短,可使用正则匹配,但性能略逊于上述方案(正则引擎存在额外开销):

String result = sentence.replaceAll("(.*Administrator).*", "$1");

边界情况处理

如果目标单词可能不存在于原字符串中,建议加判断避免索引越界:

String sentence = "I am an Administrator of my building";
String targetWord = "Administrator";
int startIdx = sentence.indexOf(targetWord);
if (startIdx != -1) {
    String result = sentence.substring(0, startIdx + targetWord.length());
    // 处理截取结果
} else {
    // 目标单词不存在的分支逻辑
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 02:57:00