Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- import java.util.Arrays;
- public class OAAusdruckParser {
- public static void main(String[] args) {
- String inputString = "2 * 3 + 4 * 7";
- String inputArray[] = inputString.split(" ");
- List<String> operators = Arrays.asList("+", "*", "-", "/", "(", ")");
- Stack<String> operatorsStack = new Stack();
- Stack<Double> numbersStack = new Stack();
- operatorsStack.push("(");
- numbersStack.push(0.0);
- double currentNumber;
- String currentOperator;
- double x;
- double y;
- String o;
- for (String value : inputArray) {
- //System.out.println(value);
- if (operators.contains(value)) {
- if (value.equals("+") || value.equals("-") && operatorsStack.size() >= 2 && numbersStack.size() >= 2) {
- x = numbersStack.pop();
- y = numbersStack.pop();
- o = operatorsStack.pop();
- switch (o) {
- case "*":
- case "/":
- numbersStack.push()
- break;
- }
- }
- operatorsStack.push(value);
- } else {
- currentNumber = Double.parseDouble(value);
- numbersStack.push(currentNumber);
- }
- }
- System.out.println(Arrays.toString(numbersStack.toArray()));
- System.out.println(Arrays.toString(operatorsStack.toArray()));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement