diff options
author | Adrien Hopkins <adrien.p.hopkins@gmail.com> | 2025-05-21 18:42:16 -0500 |
---|---|---|
committer | Adrien Hopkins <adrien.p.hopkins@gmail.com> | 2025-05-30 19:54:18 -0500 |
commit | 8df414ced2018e685f034424c3d8c7813d18805c (patch) | |
tree | 8efdb0a1631512f476329bd985ff890fdb0011bc | |
parent | 4cb7e4eb4a9213304ee5b83c9aaa0427e9a8fe31 (diff) |
Throw error on expressions with too many operators
-rw-r--r-- | src/main/java/sevenUnits/utils/ExpressionParser.java | 12 |
1 files changed, 4 insertions, 8 deletions
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<T> { // 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(); } /** |