diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-06-27 20:51:07 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-06-27 20:51:07 +0100 |
| commit | 6932fc110e1a6d734675a09fd6f5d889be1250b7 (patch) | |
| tree | eb565b1cee943a47eac4e0d82d7024fc6ae21496 /src/main/java/org | |
| parent | 773c3febb37536f77eb4ccb7c7457775ce0c7e0f (diff) | |
Add lowerCamelCaseToSnakeCase
Diffstat (limited to 'src/main/java/org')
| -rw-r--r-- | src/main/java/org/zwobble/hobgoblin/compiler/util/Casing.java | 14 |
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(); + } } |
