Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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){
- Stack<Integer> sob = new Stack<Integer>();
- Stack<Integer> mnoz = new Stack<Integer>();
- boolean mnozi = false;
- int i, zbir = 0;
- char c;
- boolean in = false;
- int br = 0;
- int proiz;
- for (i=0; i<expression.length(); i++) {
- c = expression.charAt(i);
- if (Character.isDigit(c)) {
- if (!sob.isEmpty() && in) {
- br = sob.pop();
- br = br*10+Integer.parseInt(String.valueOf(c));
- sob.push(br);
- } else {
- sob.push(Integer.parseInt(String.valueOf(c)));
- in = true;
- }
- }
- if (c == '*') {
- br = sob.pop();
- mnoz.push(br);
- in = false;
- }
- if (c == '+') {
- if (!mnoz.isEmpty()) {
- proiz = 1;
- while (!mnoz.isEmpty()) {
- proiz = sob.pop() * mnoz.pop();
- sob.push(proiz);
- }
- }
- in = false;
- }
- }
- if (!mnoz.isEmpty()) {
- br = sob.pop();
- while (!mnoz.isEmpty()) {
- br *= mnoz.pop();
- }
- sob.push(br);
- }
- while (!sob.isEmpty()) {
- zbir += sob.pop();
- }
- return zbir;
- }
- public static void main(String[] args) throws IOException {
- BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
- System.out.println(evaluateExpression(input.readLine()));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement