Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Iterator;
- import java.util.LinkedList;
- import java.util.Queue;
- import java.util.Stack;
- public class QueueUtils {
- private static int n1, n2;
- public static Queue<String> build(String line) {
- Queue<String> data = new LinkedList<>();
- String[] tokens = line.split("\\s+");
- for (String temp : tokens) {
- data.add(temp);
- }
- return data;
- }
- public static int eval(Queue<String> line) throws Exception {
- int calc = 0;
- Stack<String> numbers = new Stack<>();
- Stack<String> operators = new Stack<>();
- for (String node : line) {
- String isNumber = ".*[0-9].*";
- if (node.matches(isNumber))
- numbers.push(node);
- else
- operators.push(node);
- }
- n2 = Integer.parseInt(numbers.peek()); numbers.pop();
- if (!numbers.isEmpty()) {
- n1 = Integer.parseInt(numbers.peek()); numbers.pop();
- }
- for (String oprts : operators) {
- switch(oprts) {
- case "+":
- calc = (n1 + n2);
- break;
- case "-":
- calc = (n1 - n2);
- break;
- case "*":
- calc = (n1 * n2);
- break;
- case "/":
- calc = (n1 / n2);
- break;
- }
- }
- return operators.size() > 0 ? calc : n2;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement