2013-04-24 1 views

답변

5

봐이 시도했다 : 반복

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 "(" 
    } 
+0

@baraky'인덱스> = 0;'난 다시 내 대답 롤백을 유감, 루프의 조건 :( –

+0

이제 알았어. :) – BobTheBuilder

0
  • 사용 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; 
      } 
     } 
    } 
0

당신은, 아파치 코 몬즈에서 StringUtils를 사용할 수는

StringUtils.indexof(str, ")", str.indexOf(")") + 1); 

될 것이라고이 경우를 그 마지막 매개 변수에 당신 시작 위치를 지정할 수 있으므로 첫 번째 ")"를 피할 수 있습니다.

0

더 나은 방법이 있다고 생각합니다.

String str = "(a+b)*(c+d)*(e+f)"; 
str = str.replace(str.substring(str.lastIndexOf("*")), ""); 
int idx = str.lastIndexOf("("); 

및 "(c의 +의 d)"

str = str.substring(idx);