summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-06-27 20:51:07 +0100
committerMichael Williamson <mike@zwobble.org>2026-06-27 20:51:07 +0100
commit6932fc110e1a6d734675a09fd6f5d889be1250b7 (patch)
treeeb565b1cee943a47eac4e0d82d7024fc6ae21496 /src/main/java
parent773c3febb37536f77eb4ccb7c7457775ce0c7e0f (diff)
Add lowerCamelCaseToSnakeCase
Diffstat (limited to 'src/main/java')
-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 ac0871b..e99aec6 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/util/Casing.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/util/Casing.java
@@ -24,4 +24,18 @@ public class Casing {
return upperCase.toString();
}
+
+ public static String lowerCamelCaseToSnakeCase(String lowerCamelCase) {
+ var snakeCase = new StringBuilder();
+
+ for (var characterIndex = 0; characterIndex < lowerCamelCase.length(); characterIndex++) {
+ var character = lowerCamelCase.charAt(characterIndex);
+ if (Character.isUpperCase(character) || Character.isDigit(character)) {
+ snakeCase.append('_');
+ }
+ snakeCase.append(Character.toLowerCase(character));
+ }
+
+ return snakeCase.toString();
+ }
}