From 8df414ced2018e685f034424c3d8c7813d18805c Mon Sep 17 00:00:00 2001 From: Adrien Hopkins Date: Wed, 21 May 2025 18:42:16 -0500 Subject: Throw error on expressions with too many operators --- src/main/java/sevenUnits/utils/ExpressionParser.java | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'src/main/java/sevenUnits') diff --git a/src/main/java/sevenUnits/utils/ExpressionParser.java b/src/main/java/sevenUnits/utils/ExpressionParser.java index 2bc8952..4f9cfa8 100644 --- a/src/main/java/sevenUnits/utils/ExpressionParser.java +++ b/src/main/java/sevenUnits/utils/ExpressionParser.java @@ -684,15 +684,11 @@ public final class ExpressionParser { // join all of the components together, then ensure there is only one // space in a row - String expressionRPN = String.join(" ", components).replaceAll(" +", " "); - - while (expressionRPN.charAt(0) == ' ') { - expressionRPN = expressionRPN.substring(1); - } - while (expressionRPN.charAt(expressionRPN.length() - 1) == ' ') { - expressionRPN = expressionRPN.substring(0, expressionRPN.length() - 1); + if (components.size() != 1) { + throw new IllegalArgumentException( + "Invalid expression \"" + expression + "\"."); } - return expressionRPN; + return components.get(0).replaceAll(" +", " ").trim(); } /** -- cgit v1.2.3