如何对带有重复字符的String使用substring和indexOf?

Bur*_*ras 3 java string substring indexof

我有以下String myString="city(Denver) AND state(Colorado)"; 它重复"("和")"......

我如何检索州名,即科罗拉多州.我尝试了以下方法:

String state = myString.substring(myString.indexOf("state(")+1,myString.indexOf(")"));
Run Code Online (Sandbox Code Playgroud)

但它给了 indexOutOfBoundException

有没有办法指定我需要第二个"("在myString中?我需要结果: String state = "Colorado";

Rei*_*eus 9

使用lastIndexOf.同时增加初始偏移量以允许子字符串中的字符数state(:

String state = myString.substring(myString.indexOf("state(") + 6, myString.lastIndexOf(")"));
Run Code Online (Sandbox Code Playgroud)


cat*_*hv0 5

您可以使用正则表达式。

Matcher matcher = Pattern.compile("(state)(\(.*?\))").matcher(text);
String state = matcher.group(2);
Run Code Online (Sandbox Code Playgroud)