summaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/util/Casing.java14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/util/Casing.java b/src/main/java/org/zwobble/hobgoblin/compiler/util/Casing.java
index 3705f99..ef002ba 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/util/Casing.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/util/Casing.java
@@ -42,4 +42,18 @@ public class Casing {
return snakeCase.toString();
}
+
+ public static String upperCamelCaseToSnakeCase(String lowerCamelCase) {
+ var snakeCase = new StringBuilder();
+
+ for (var characterIndex = 0; characterIndex < lowerCamelCase.length(); characterIndex++) {
+ var character = lowerCamelCase.charAt(characterIndex);
+ if (characterIndex != 0 && Character.isUpperCase(character) || Character.isDigit(character)) {
+ snakeCase.append('_');
+ }
+ snakeCase.append(Character.toLowerCase(character));
+ }
+
+ return snakeCase.toString();
+ }
}