summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrien Hopkins <adrien.p.hopkins@gmail.com>2025-05-21 18:42:16 -0500
committerAdrien Hopkins <adrien.p.hopkins@gmail.com>2025-05-30 19:54:18 -0500
commit8df414ced2018e685f034424c3d8c7813d18805c (patch)
tree8efdb0a1631512f476329bd985ff890fdb0011bc
parent4cb7e4eb4a9213304ee5b83c9aaa0427e9a8fe31 (diff)
Throw error on expressions with too many operators
-rw-r--r--src/main/java/sevenUnits/utils/ExpressionParser.java12
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();
}
/**