diff options
Diffstat (limited to 'src/main/java/net/glease/ggfab/util/GGUtils.java')
-rw-r--r-- | src/main/java/net/glease/ggfab/util/GGUtils.java | 25 |
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(); + } } |