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

如何提取字符串中引号及括号内的内容?Java技术求助

提取字符串中引号内的内容方案

嘿,我来帮你搞定引号内容提取的问题!既然你已经掌握了括号内内容的提取方法,那引号部分其实可以用类似的indexOf思路来处理——你的目标字符串格式很固定,有两对独立的引号,我们可以分步定位它们的位置:

步骤1:定义原字符串

先把目标字符串存好(注意要转义内部的双引号):

String originalStr = "\"/d/WdTkRcxA/\" + (446767 % 51245 + 446767 % 913) + \"/Test%20vol.zip\"";

步骤2:提取第一对引号内的内容

我们需要先找到第一个双引号的位置,再定位它后面紧邻的下一个双引号,最后截取中间的内容:

// 定位第一个双引号的起始位置
int firstQuoteStart = originalStr.indexOf("\"");
// 从第一个引号之后开始找下一个双引号,作为结束位置
int firstQuoteEnd = originalStr.indexOf("\"", firstQuoteStart + 1);
// 截取两个引号之间的内容
String firstQuotedPart = originalStr.substring(firstQuoteStart + 1, firstQuoteEnd);

此时firstQuotedPart的值就是/d/WdTkRcxA/。

步骤3:提取第二对引号内的内容

沿用同样的逻辑,这次从第一对引号的结束位置之后开始定位第二对引号:

// 从第一对引号结束后开始找第二个引号对的起始
int secondQuoteStart = originalStr.indexOf("\"", firstQuoteEnd + 1);
// 定位第二个引号对的结束位置
int secondQuoteEnd = originalStr.indexOf("\"", secondQuoteStart + 1);
// 截取内容
String secondQuotedPart = originalStr.substring(secondQuoteStart + 1, secondQuoteEnd);

这样secondQuotedPart就会得到/Test%20vol.zip。

补充:括号内容提取(你已掌握,这里再确认完整性)

你之前的代码已经能正确提取括号内的内容,这里再贴出来确保流程完整:

int bracketStart = originalStr.indexOf("(");
int bracketEnd = originalStr.indexOf(")");
String bracketContent = originalStr.substring(bracketStart + 1, bracketEnd);

注意事项

如果你的字符串格式固定(不会出现引号内嵌套转义引号的情况),这种indexOf的方法简单高效,完全够用。要是以后遇到更复杂的字符串场景,再考虑用正则表达式来匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:05:20