summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2017-02-11 08:43:13 -0500
committerbculkin2442 <bjculkin@mix.wvu.edu>2017-02-11 08:43:13 -0500
commitf2ae0cb70448c5eccee80fd1d1cc600644692768 (patch)
treea8e55b367431fa179429d188deeccfab506740d6 /BJC-Utils2/src/main
parent1a8376548d7d448e0d4e2373cf3308cc85c2c0bd (diff)
Fixed extra toString comma
Diffstat (limited to 'BJC-Utils2/src/main')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/funcdata/FunctionalList.java25
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/funcutils/TokenDeaffixer.java19
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);
}