diff options
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils')
| -rw-r--r-- | BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalList.java | 25 | ||||
| -rw-r--r-- | BJC-Utils2/src/main/java/bjc/utils/funcutils/TokenDeaffixer.java | 19 |
2 files changed, 38 insertions, 6 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalList.java b/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalList.java index 81c263f..0374a1f 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalList.java +++ b/BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalList.java @@ -409,6 +409,7 @@ public class FunctionalList<E> implements Cloneable, IList<E> { @Override public void sort(Comparator<E> comparator) { + // sb.deleteCharAt(sb.length() - 2); Collections.sort(wrapped, comparator); } @@ -429,17 +430,29 @@ public class FunctionalList<E> implements Cloneable, IList<E> { @Override public String toString() { + int lSize = getSize(); + + if(lSize == 0) return "()"; + StringBuilder sb = new StringBuilder("("); + Iterator<E> itr = toIterable().iterator(); + E itm = itr.next(); - // Append the string form of each element - forEach(strang -> sb.append(strang + ", ")); + if(lSize == 1) { + return "(" + itm + ")"; + } - // Remove trailing space and comma - sb.deleteCharAt(sb.length() - 1); - // sb.deleteCharAt(sb.length() - 2); + for(int i = 0; itr.hasNext(); itm = itr.next()) { + sb.append(itm.toString()); - sb.append(")"); + if(i < lSize-1) { + sb.append(", "); + } + i += 1; + } + + sb.append(")"); return sb.toString(); } } diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcutils/TokenDeaffixer.java b/BJC-Utils2/src/main/java/bjc/utils/funcutils/TokenDeaffixer.java index 79f6e3b..2aa92e5 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/funcutils/TokenDeaffixer.java +++ b/BJC-Utils2/src/main/java/bjc/utils/funcutils/TokenDeaffixer.java @@ -1,5 +1,6 @@ package bjc.utils.funcutils; +import java.util.Iterator; import java.util.function.BiFunction; import bjc.utils.funcdata.FunctionalList; @@ -24,9 +25,27 @@ final class TokenDeaffixer if (StringUtils.containsOnly(token, operatorRegex)) { return new FunctionalList<>(token); } else if (token.startsWith(operatorName)) { + if(token.endsWith(operatorName)) { + return new FunctionalList<>(operatorName, token.split(operatorRegex)[1], operatorName); + } + return new FunctionalList<>(operatorName, token.split(operatorRegex)[1]); } else if (token.endsWith(operatorName)) { return new FunctionalList<>(token.split(operatorRegex)[0], operatorName); + } else if (token.contains(operatorName)) { + String[] tokenParts = token.split(operatorRegex); + + IList<String> returned = new FunctionalList<>(); + + for(int i = 0; i < tokenParts.length; i++) { + returned.add(tokenParts[i]); + + if(i < tokenParts.length - 1) { + returned.add(operatorName); + } + } + + return returned; } else { return new FunctionalList<>(token); } |
