Skip to content

Latest commit

 

History

History
38 lines (27 loc) · 844 Bytes

README.md

File metadata and controls

38 lines (27 loc) · 844 Bytes

Marino Solver

A fast and lightweight expression solver.

To solve your expression, simply create a com.giuseppepagliaro.marinosolver.parsers.Parser with your problem.

Parser parser = new Parser("(2+5)*3");

Then, inject the parser instance into any Solver subclass and iterate over the steps to get the result.

Solver solver = new ExpressionSolver(parser);

while (solver.hasMoreSteps()) {
    solver.solveStep();
}

To display the result, you can request a java.util.LinkedList with the steps (in order) and then get the result.

LinkedList<String> exprHistory = solver.getHistory();

for (String step : exprHistory) {
    System.out.println("Step: " + step);
}

System.out.println("Result: " + solver.getResult());

This would be the output:

Step: (2.0+5.0)*3.0
Step: 7.0*3.0
Result: 21.0