Например:
str = "(a+b)*(c+d)*(e+f)"
str.indexOf("(") = 0
str.lastIndexOf("(") = 12
Как получить индекс во второй скобке? (c+d) ‹- это
Например:
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 "("
}
index >= 0;
- это условие в цикле for, извините, я снова откатываюсь к своему ответу :(
- person Alya'a Gamal; 24.04.2013
int first = str.indexOf("(");
int next = str.indexOf("(", first+1);
ознакомьтесь с документацией по API
Вы можете использовать StringUtils из Apache Commons, в данном случае это будет
StringUtils.indexof(str, ")", str.indexOf(")") + 1);
Идея в том, что в последнем параметре можно указать начальную позицию, чтобы можно было избежать первого ")".
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;
}
}
}
Я думаю, есть лучший метод !!!
String str = "(a+b)*(c+d)*(e+f)";
str = str.replace(str.substring(str.lastIndexOf("*")), "");
int idx = str.lastIndexOf("(");
и "(с+г)":
str = str.substring(idx);