Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static double interpret (String pol) { //Удаляем все ненужное форматирование
- String empty = pol.replaceAll("\t", "").replaceAll("\n", "").replaceAll("[ ](?=[ ])","").trim();
- String[] polArray = empty.split(" ");// Разделить строку на массив, используя пробелы между ними в качестве разделителей
- DoubleStack resultStack = new DoubleStack();
- for (String s : polArray) {
- if (s.matches("[+*/\\-]")) {
- resultStack.op(s);
- } else {
- resultStack.push(Double.parseDouble(s)); //Используем стек для вычислений
- }
- }
- if (resultStack.doubleStack.size() == 1) {
- return resultStack.pop();
- } else {
- throw new IllegalArgumentException("Empty");// Возврат, только если размер стека равен 1,
- // Если не 1, значит, вычисления не завершены, числа остались и выдается исключение
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement