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

Java获取字符串前两个/之间含斜杠的子串有没有更优雅实现?

替代实现方案

方案1:索引截取(性能最优)

不需要拆分整个字符串,也没有正则匹配开销,仅扫描到第二个/就停止,适合处理大量或超长字符串:

// substring为左闭右开规则,结束下标取第二个/的索引+1即可完整包含前后斜杠
String result = thestra.substring(0, thestra.indexOf('/', 1) + 1);

因为你的场景已经保证字符串最少存在2个/,所以thestra.indexOf('/', 1)一定会返回合法的第二个/的索引,不会出现取值为-1的异常。

方案2:正则替换(写法最简洁)

仅需一行代码完成匹配提取,可读性高:

String result = thestra.replaceAll("(/[^/]+/).*", "$1");

正则逻辑说明:

  • (/[^/]+/) 捕获第一个/到第二个/之间的完整片段(包含前后两个/)
  • .*匹配后面所有剩余内容
  • 用$1把整个字符串替换为捕获到的目标片段即可

原split方案的不足

原实现需要拆分整个字符串生成数组,会产生不必要的内存开销,长字符串场景下性能弱于上述两种方案。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:24:03