vezbanje 5ta

gorazd avatar
gorazd
java
02/02/2026 3:09 PM
1.8 KB
10
Indexable
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;

public class ExpressionEvaluator {

    public static int evaluateExpression(String expression){
        int value = 0;
        int currentNumber = 0;
        char operation = '+';
        Stack<Integer> stack = new Stack<>();
        for(int i = 0; i<expression.length(); i++){
            char ch = expression.charAt(i);

            if(Character.isDigit(ch)){
                currentNumber = 10*currentNumber + (ch-'0');
            }
            if((!Character.isDigit(ch) && ch != ' ') || i == expression.length()-1){
                if(operation=='+'){
                    stack.push(currentNumber);
                }
                else if(operation=='*'){
                    stack.push(stack.pop()*currentNumber);
                }
                if(i<expression.length()-1){
                    operation = ch;
                }
                currentNumber = 0;
            }
        }
        while(!stack.isEmpty()){
            value += stack.pop();
        }
        return value;
    }
    public static void main(String[] args) throws IOException {
        BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
        System.out.println(evaluateExpression(input.readLine()));
    }

}
Editor is loading...
Leave a Comment