Advertisement
Guest User

Untitled

a guest
Jan 21st, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. import java.util.*;
  2. import java.util.Arrays;
  3.  
  4. public class OAAusdruckParser {
  5.  
  6. public static void main(String[] args) {
  7. String inputString = "2 * 3 + 4 * 7";
  8. String inputArray[] = inputString.split(" ");
  9.  
  10. List<String> operators = Arrays.asList("+", "*", "-", "/", "(", ")");
  11.  
  12. Stack<String> operatorsStack = new Stack();
  13. Stack<Double> numbersStack = new Stack();
  14.  
  15. operatorsStack.push("(");
  16. numbersStack.push(0.0);
  17.  
  18. double currentNumber;
  19. String currentOperator;
  20.  
  21. double x;
  22. double y;
  23. String o;
  24.  
  25. for (String value : inputArray) {
  26. //System.out.println(value);
  27.  
  28. if (operators.contains(value)) {
  29.  
  30. if (value.equals("+") || value.equals("-") && operatorsStack.size() >= 2 && numbersStack.size() >= 2) {
  31. x = numbersStack.pop();
  32. y = numbersStack.pop();
  33. o = operatorsStack.pop();
  34.  
  35. switch (o) {
  36. case "*":
  37. case "/":
  38. numbersStack.push()
  39.  
  40. break;
  41. }
  42. }
  43.  
  44. operatorsStack.push(value);
  45. } else {
  46. currentNumber = Double.parseDouble(value);
  47.  
  48. numbersStack.push(currentNumber);
  49. }
  50. }
  51.  
  52. System.out.println(Arrays.toString(numbersStack.toArray()));
  53. System.out.println(Arrays.toString(operatorsStack.toArray()));
  54. }
  55.  
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement