aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/glease/ggfab/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/glease/ggfab/util')
-rw-r--r--src/main/java/net/glease/ggfab/util/GGUtils.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/main/java/net/glease/ggfab/util/GGUtils.java b/src/main/java/net/glease/ggfab/util/GGUtils.java
index 66ff5d9361..59dbf482ec 100644
--- a/src/main/java/net/glease/ggfab/util/GGUtils.java
+++ b/src/main/java/net/glease/ggfab/util/GGUtils.java
@@ -47,4 +47,29 @@ public class GGUtils {
sj.add(String.valueOf(tile.getZCoord()));
return sj.toString();
}
+
+ /**
+ * convert lowerCamelCase to any of snake case or normal sentence
+ */
+ public static String processSentence(String src, Character separator, boolean capitalize, boolean firstCapitalize) {
+ if (src == null) throw new IllegalArgumentException();
+ if (src.isEmpty()) return "";
+ StringBuilder out = new StringBuilder(src.length());
+ if (firstCapitalize) out.append(Character.toUpperCase(src.charAt(0)));
+ else out.append(src.charAt(0));
+ for (int i = 1; i < src.length(); i++) {
+ char ch = src.charAt(i);
+ if (Character.isUpperCase(ch)) {
+ if (separator != null) out.append(separator.charValue());
+ if (capitalize) {
+ out.append(ch);
+ } else {
+ out.append(Character.toLowerCase(ch));
+ }
+ } else {
+ out.append(ch);
+ }
+ }
+ return out.toString();
+ }
}