java.util.StackStringTest {
=[] = {
}= (Stack<Integer> numStackStack<String> symbolStack) {
String symbol = symbolStack.pop()a = numStack.pop()b = numStack.pop()b = .equals(symbol) ? numStack.push(a + b)
: .equals(symbol) ? numStack.push(b - a) : .equals(symbol) ? numStack.push(a * b) : }
(String expression) {
Stack<Integer> numStack = Stack<Integer>()Stack<String> symbolStack = Stack<String>()numTmp = String peek = befor=(i = i < expression.length()i++) {
c = expression.charAt(i)(c >= && c <= ) {
numTmp = (numTmp == ) ? c - : numTmp * + c - (numTmp!=){
(befor==){
}
}
} {numStack.push(numTmp)numTmp = (!symbolStack.empty()) {
peek = symbolStack.peek()(.equals(peek)) {
calculator(numStacksymbolStack)}
(!(c == ) && !symbolStack.empty()) {
calculator(numStacksymbolStack)}
}
symbolStack.push(c + )}
befor=c}
numStack.push(numTmp)(!symbolStack.empty()) {
calculator(numStacksymbolStack)}
result = numStack.pop()(result == ) {
System..println(++ + + expression + + )}
result}
(String expressioncursor) {
(cursor >= .) {
checkValue(expression)}
(i = i < i++) {
getExpression(expression
+ ((i == ) ? + [cursor] : (i == ) ? + [cursor] : (i == ) ? + [cursor] : [cursor])cursor + )}
}
(String[] args) {
StringTest stringTest = StringTest()stringTest.getExpression(stringTest.[] + )}
}
转载于:https://my.oschina.net/u/2497999/blog/551108