Advertisement
Guest User

expressionSolver

a guest
Oct 28th, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.94 KB | None | 0 0
  1.  
  2. import java.util.ArrayList;
  3. import java.util.Scanner;
  4. import static java.lang.Integer.*;
  5. import static java.lang.System.*;
  6.  
  7. public class ExpressionSolverRunner {
  8.     public static void main(String[] args) {
  9.         Scanner input = new Scanner(System.in);
  10.         /*
  11.          * System.out.print("Enter an operation: "); String a =
  12.          * input.nextLine(); ExpressionSolver calc = new ExpressionSolver();
  13.          * System.out.println("Result: " + calc.solve(a));
  14.          */
  15.         System.out.print("Type expression: ");
  16.  
  17.         ArrayList<String> equation = new ArrayList<String>();
  18.         equation = format(input.next());
  19.         System.out.println(solve(equation));
  20.     }
  21.  
  22.     public static ArrayList<String> format(String str) {
  23.         ArrayList<String> equation = new ArrayList<String>();
  24.         for (int i = 0; i < str.length(); i++) {
  25.             if (str.charAt(i) != ' ') {
  26.                 equation.add("" + str.charAt(i));
  27.             }
  28.         }
  29.         return equation;
  30.     }
  31.  
  32.     public static ArrayList<String> solve(ArrayList<String> equation) {
  33.         while (equation.size() != 1) {
  34.             for (int i = 0; i < equation.size() - 1; i++) {
  35.                 if (equation.get(i).equals("*")) {
  36.                     equation.set(i, Double.toString(
  37.                             Double.parseDouble(equation.get(i - 1)) * Double.parseDouble(equation.get(i + 1))));
  38.                 } else if (equation.get(i).equals("/")) {
  39.                     equation.set(i, Double.toString(
  40.                             Double.parseDouble(equation.get(i - 1)) / Double.parseDouble(equation.get(i + 1))));
  41.                 }
  42.                 equation.remove(i - 1);
  43.                 equation.remove(i + 1);
  44.             }
  45.             for (int i = 0; i < equation.size() - 1; i++) {
  46.                 if (equation.get(i).equals("+")) {
  47.                     equation.set(i, Double.toString(
  48.                             Double.parseDouble(equation.get(i - 1)) + Double.parseDouble(equation.get(i + 1))));
  49.                 } else if (equation.get(i).equals("/")) {
  50.                     equation.set(i, Double.toString(
  51.                             Double.parseDouble(equation.get(i - 1)) * Double.parseDouble(equation.get(i + 1))));
  52.                 }
  53.                 equation.remove(i - 1);
  54.                 equation.remove(i + 1);
  55.             }
  56.         }
  57.         return equation;
  58.     }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement