From 44d4f449ee2b072ec62618d6e1cfa2bd419c4f77 Mon Sep 17 00:00:00 2001 From: Stefan Suhren Date: Tue, 6 Jan 2015 11:42:26 +0100 Subject: Assignment No.11 fixed an empty string problem --- src/de/fhswf/in/inf/java1/aufgabe11/UPN.java | 76 +++++++++++++++------------- 1 file changed, 40 insertions(+), 36 deletions(-) (limited to 'src/de/fhswf/in/inf/java1/aufgabe11/UPN.java') diff --git a/src/de/fhswf/in/inf/java1/aufgabe11/UPN.java b/src/de/fhswf/in/inf/java1/aufgabe11/UPN.java index f8938fc..893aa93 100644 --- a/src/de/fhswf/in/inf/java1/aufgabe11/UPN.java +++ b/src/de/fhswf/in/inf/java1/aufgabe11/UPN.java @@ -44,42 +44,46 @@ public class UPN for (String string : upnString.split("\\s+")) { - Double[] operands = null; - - switch (string) + if (!string.isEmpty()) { - case "+": - operands = fetch(); - upnStack.add(operands[0] + operands[1]); - break; - case "-": - operands = fetch(); - upnStack.add(operands[0] - operands[1]); - break; - case "*": - operands = fetch(); - upnStack.add(operands[0] * operands[1]); - break; - case "/": - divisorZero(); - operands = fetch(); - upnStack.add(operands[0] / operands[1]); - break; - case "%": - divisorZero(); - operands = fetch(); - upnStack.add(operands[0] % operands[1]); - break; - default: - try - { - upnStack.add(Double.valueOf(string)); - } - catch (NumberFormatException e) - { - throw new IllegalArgumentException("String: \"" + string - + "\" is not a valid operator nor a valid operand."); - } + Double[] operands = null; + + switch (string) + { + case "+": + operands = fetch(); + upnStack.add(operands[0] + operands[1]); + break; + case "-": + operands = fetch(); + upnStack.add(operands[0] - operands[1]); + break; + case "*": + operands = fetch(); + upnStack.add(operands[0] * operands[1]); + break; + case "/": + divisorZero(); + operands = fetch(); + upnStack.add(operands[0] / operands[1]); + break; + case "%": + divisorZero(); + operands = fetch(); + upnStack.add(operands[0] % operands[1]); + break; + default: + try + { + upnStack.add(Double.valueOf(string)); + } + catch (NumberFormatException e) + { + throw new IllegalArgumentException("String: \"" + string + + "\" is not a valid" + + " operator nor a valid operand."); + } + } } } } @@ -97,7 +101,7 @@ public class UPN } return upnStack.peek(); } - + /** * Checks if Divisor will be zero. * -- cgit v1.2.3-70-g09d2