Advertisement
UniQuet0p1

Untitled

Oct 4th, 2021
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. public static double interpret (String pol) { //Удаляем все ненужное форматирование
  2. String empty = pol.replaceAll("\t", "").replaceAll("\n", "").replaceAll("[ ](?=[ ])","").trim();
  3. String[] polArray = empty.split(" ");// Разделить строку на массив, используя пробелы между ними в качестве разделителей
  4.  
  5.  
  6. DoubleStack resultStack = new DoubleStack();
  7. for (String s : polArray) {
  8. if (s.matches("[+*/\\-]")) {
  9. resultStack.op(s);
  10. } else {
  11. resultStack.push(Double.parseDouble(s)); //Используем стек для вычислений
  12. }
  13. }
  14.  
  15. if (resultStack.doubleStack.size() == 1) {
  16. return resultStack.pop();
  17. } else {
  18. throw new IllegalArgumentException("Empty");// Возврат, только если размер стека равен 1,
  19. // Если не 1, значит, вычисления не завершены, числа остались и выдается исключение
  20. }
  21. }
  22. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement