Java 如何在上一个索引之后返回下一个索引?
例如:Java 如何在上一个索引之后返回下一个索引?,java,string,indexof,Java,String,Indexof,例如: str = "(a+b)*(c+d)*(e+f)" str.indexOf("(") = 0 str.lastIndexOf("(") = 12 如何获得第二个括号中的索引? (c+d) 看一看试试这个: String word = "(a+b)*(c+d)*(e+f)"; String c = "("; for (int index = word.indexOf(c);index >= 0; index = word.indexOf(c, index + 1)) {
str = "(a+b)*(c+d)*(e+f)"
str.indexOf("(") = 0
str.lastIndexOf("(") = 12
如何获得第二个括号中的索引?
(c+d)
看一看试试这个:
String word = "(a+b)*(c+d)*(e+f)";
String c = "(";
for (int index = word.indexOf(c);index >= 0; index = word.indexOf(c, index + 1)) {
System.out.println(index);//////here you will get all the index of "("
}
- 反复使用
charAt()
- 重复使用
indexOf()
int index =0;
int resultIndex=0;
for (int i = 0; i < str.length(); i++){
if (str.charAt(i) =='('){
index++;
if (index==2){
resultIndex =i;
break;
}
}
}
int索引=0;
int resultIndex=0;
对于(int i=0;i
您可以从Apache Commons中使用,在本例中是
StringUtils.indexof(str, ")", str.indexOf(")") + 1);
想法是在最后一个参数中可以指定起始位置,这样就可以避免第一个“)”我认为有更好的方法
String str = "(a+b)*(c+d)*(e+f)";
str = str.replace(str.substring(str.lastIndexOf("*")), "");
int idx = str.lastIndexOf("(");
及“(c+d)”:
@巴拉克:
索引>=0代码>是for循环中的条件,所以很抱歉我再次回滚到我的答案:(7年后仍然有用:)。
String str = "(a+b)*(c+d)*(e+f)";
str = str.replace(str.substring(str.lastIndexOf("*")), "");
int idx = str.lastIndexOf("(");
str = str.substring(idx);