Java에서 문자열에서 읽은 표현식을 평가하는 계산기를 작성하려고합니다.연산자가 괄호 안에 중첩되어 있는지 확인하십시오.
내 알고리즘은 입력 문자열을 최하위 우선 순위 연산 (즉 가장 오른쪽 +)으로 재귀 적으로 분할 한 다음 이진 연산이있는 시점을 평가합니다.
연산자가 괄호 안에 중첩되었는지 여부를 확인하는 데 문제가 있습니다.
이
이 수표입니다 - 특급는 식의 문자열, lastMD 문제의 운영자가 작동 심지어 다른 점프하지 않는 몇 가지 이유를 들어 특급if (exp.lastIndexOf('(', lastMD) != -1 && exp.lastIndexOf('(', lastMD) < lastMD && exp.lastIndexOf('(', lastMD) > exp.lastIndexOf('(', lastMD)) {
// it is in parenthesis
}
else {
// it is not in parenthesis
}
에있는 인덱스입니다 lastMD가 괄호로 둘러싸인 경우.
무엇이 누락 되었습니까?
감사합니다.
괄호 부분은 [여기]를보세요. (http://stackoverflow.com/questions/26974739/split-a-complex-string-based-on-grouping-of-small-brackets-in-java/26975501 # 26975501). 괄호가 쌍으로 중첩 된 것처럼 보이기 때문에 간단한 indexOf는 쉽게 수행되지 않습니다. 그 답변에서 중첩 된 표현식이 먼저 해결됩니다. –