【发布时间】:2018-01-11 03:23:18
【问题描述】:
我有以下字符串并想提取规则的内容,即我的规则描述如下所示:
rule "My Rule Description Looks Like This"
followed by some white space other characters such as quotes".
当我使用以下内容时,我得到一个 java.lang.StringIndexOutOfBoundsException: String index out of range: -2:
String ruleName = rule.substring(rule.indexOf("rule \"" + 7, rule.indexOf("\""));
当我使用 lastIndexOf:
String ruleName = rule.substring(rule.indexOf("rule \"" + 7, rule.lastIndexOf("\""));
代码执行正常,但输出如下:
My Rule Description Looks Like This"
followed by some white space other characters and quotes
任何想法为什么第一个选项使用 indexOf 引发异常?
【问题讨论】:
-
你调用的东西看起来像
substring(11, 4) -
您的子字符串调用无法编译。
-
很惊讶没有人提到
"rule \"" + 7是字符串"rule "7" -
@MichaelMarkidis 数一下括号,它少了一个。这只是一个错字。
标签: java indexof lastindexof