如何在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,咱们可以分三步走:
- 找到左大括号
{的位置:用indexOf("{")方法获取它的索引 - 找到右大括号
}的位置:用indexOf("}")方法获取它的索引 - 调用
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
相关产品推荐
相关产品推荐

