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

如何在Java中通过首尾索引分割字符串(附提取大括号内容示例)

在Java中通过首尾索引分割字符串并提取目标内容

嘿,我来帮你搞定这个问题!咱们先把核心思路讲清楚,再针对你的示例给出具体的实现代码。

一、利用首尾索引分割字符串的核心方法

Java的String类自带的substring(int beginIndex, int endIndex)方法就是专门干这事的,几个关键细节得记牢:

  • 起始索引beginIndex:要截取的子串的第一个字符的位置(包含这个字符)
  • 结束索引endIndex:要截取的子串的最后一个字符的下一个位置(不包含这个位置的字符)
  • 字符串的索引是从0开始计数的

举个简单例子:如果有字符串"HelloJava",想提取中间的"lloJ",那起始索引是2,结束索引是6,代码就是:

String original = "HelloJava";
String subStr = original.substring(2, 6);
System.out.println(subStr); // 输出:lloJ

二、针对示例字符串ABC-{9090}提取大括号内的内容

要提取{}之间的9090,咱们可以分三步走:

  1. 找到左大括号{的位置:用indexOf("{")方法获取它的索引
  2. 找到右大括号}的位置:用indexOf("}")方法获取它的索引
  3. 调用substring截取中间内容:起始索引是左大括号索引+1(跳过{),结束索引是右大括号的索引(不包含})

完整实现代码

public class ExtractBraceContent {
    public static void main(String[] args) {
        String targetStr = "ABC-{9090}";
        
        // 获取大括号的索引
        int leftBracePos = targetStr.indexOf("{");
        int rightBracePos = targetStr.indexOf("}");
        
        // 提取内容并输出
        String result = targetStr.substring(leftBracePos + 1, rightBracePos);
        System.out.println(result); // 输出:9090
    }
}

额外的异常处理建议

如果怕输入的字符串格式不规范(比如没有大括号、只有一个大括号),可以加个判断避免报错:

public class ExtractBraceContent {
    public static void main(String[] args) {
        String targetStr = "ABC-{9090}";
        
        int leftBracePos = targetStr.indexOf("{");
        int rightBracePos = targetStr.indexOf("}");
        
        // 先验证大括号是否存在且位置合法
        if (leftBracePos != -1 && rightBracePos != -1 && rightBracePos > leftBracePos) {
            String result = targetStr.substring(leftBracePos + 1, rightBracePos);
            System.out.println(result);
        } else {
            System.out.println("输入字符串格式不正确,未找到有效的大括号对");
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:08:03