Advertisement
Guest User

Untitled

a guest
Jun 18th, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.51 KB | None | 0 0
  1. import java.math.BigInteger;
  2. import java.util.ArrayList;
  3. import java.util.Scanner;
  4.  
  5. public class Main {
  6.  
  7. public static void main(String[] args) {
  8. // readinput
  9. Scanner in = new Scanner(System.in);
  10. ArrayList<String> expr = new ArrayList<>();
  11. String[] input = in.nextLine().split("");
  12. int status = -1;
  13. String mask = new String();
  14. for (int i = 0; i < input.length; i++) {
  15. if (input[i].equals(" ")) {
  16. if (status == 1) {
  17. expr.add(mask);
  18. mask = new String();
  19. status = 0;
  20. }
  21. continue;
  22. }
  23. if (input[i].equals(")") || input[i].equals("(") || input[i].equals("+") || input[i].equals("-") || input[i].equals("*")){
  24. if (status == 1) {
  25. expr.add(mask);
  26. mask = new String();
  27. status = 0;
  28. }
  29. expr.add(input[i]);
  30. continue;
  31. }
  32. mask += input[i];
  33. status = 1;
  34. }
  35. if (!(mask.equals(""))) {
  36. expr.add(mask);
  37.  
  38. }
  39. //input ready
  40. int operator = 0;
  41. BigInteger sum = BigInteger.valueOf(0);
  42. for (int i = expr.size()-1; i >= 0; i--) {
  43. if (expr.get(i).equals("+")) {
  44. operator = 1;
  45. continue;
  46. } else if (expr.get(i).equals("-")) {
  47. operator = 2;
  48. continue;
  49. } else if (expr.get(i).equals("*")) {
  50. operator = 3;
  51. continue;
  52. }
  53. if (expr.get(i).equals(")")) {
  54. continue;
  55. }
  56. if (expr.get(i).equals("(")) {
  57. continue;
  58. }
  59. BigInteger temp = new BigInteger(expr.get(i));
  60. if (sum.compareTo(BigInteger.valueOf(0)) == 0) {
  61. sum = sum.add(temp);
  62. }
  63. if (operator > 0){
  64. switch (operator){
  65. case 1:
  66. sum = sum.add(temp);
  67. break;
  68. case 2:
  69. sum = temp.subtract(sum);
  70. break;
  71. case 3:
  72. sum = sum.multiply(temp);
  73. break;
  74. }
  75. operator = 0;
  76. }
  77. }
  78. System.out.println(sum);
  79. }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement