Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.Scanner;
- import static java.lang.Integer.*;
- import static java.lang.System.*;
- public class ExpressionSolverRunner {
- public static void main(String[] args) {
- Scanner input = new Scanner(System.in);
- /*
- * System.out.print("Enter an operation: "); String a =
- * input.nextLine(); ExpressionSolver calc = new ExpressionSolver();
- * System.out.println("Result: " + calc.solve(a));
- */
- System.out.print("Type expression: ");
- ArrayList<String> equation = new ArrayList<String>();
- equation = format(input.next());
- System.out.println(solve(equation));
- }
- public static ArrayList<String> format(String str) {
- ArrayList<String> equation = new ArrayList<String>();
- for (int i = 0; i < str.length(); i++) {
- if (str.charAt(i) != ' ') {
- equation.add("" + str.charAt(i));
- }
- }
- return equation;
- }
- public static ArrayList<String> solve(ArrayList<String> equation) {
- while (equation.size() != 1) {
- for (int i = 0; i < equation.size() - 1; i++) {
- if (equation.get(i).equals("*")) {
- equation.set(i, Double.toString(
- Double.parseDouble(equation.get(i - 1)) * Double.parseDouble(equation.get(i + 1))));
- } else if (equation.get(i).equals("/")) {
- equation.set(i, Double.toString(
- Double.parseDouble(equation.get(i - 1)) / Double.parseDouble(equation.get(i + 1))));
- }
- equation.remove(i - 1);
- equation.remove(i + 1);
- }
- for (int i = 0; i < equation.size() - 1; i++) {
- if (equation.get(i).equals("+")) {
- equation.set(i, Double.toString(
- Double.parseDouble(equation.get(i - 1)) + Double.parseDouble(equation.get(i + 1))));
- } else if (equation.get(i).equals("/")) {
- equation.set(i, Double.toString(
- Double.parseDouble(equation.get(i - 1)) * Double.parseDouble(equation.get(i + 1))));
- }
- equation.remove(i - 1);
- equation.remove(i + 1);
- }
- }
- return equation;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement