blob: 7e694359c7d826ca4b15a67113fca7b0f45b48d3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
package org.zwobble.hobgoblin.compiler.util;
import java.util.Locale;
public class Casing {
private Casing() {}
public static String lowerCamelCaseToUpperCamelCase(String name) {
return name.substring(0, 1).toUpperCase(Locale.ROOT) + name.substring(1);
}
public static String upperCamelCaseToLowerCamelCase(String name) {
return name.substring(0, 1).toLowerCase(Locale.ROOT) + name.substring(1);
}
public static String lowerCamelCaseToUpperCase(String lowerCamelCase) {
var upperCase = new StringBuilder();
for (var characterIndex = 0; characterIndex < lowerCamelCase.length(); characterIndex++) {
var character = lowerCamelCase.charAt(characterIndex);
if (Character.isUpperCase(character) || (Character.isDigit(character) && !Character.isDigit(lowerCamelCase.charAt(characterIndex - 1)))) {
upperCase.append('_');
upperCase.append(character);
} else {
upperCase.append(Character.toUpperCase(character));
}
}
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) && !Character.isDigit(lowerCamelCase.charAt(characterIndex - 1)))) {
snakeCase.append('_');
}
snakeCase.append(Character.toLowerCase(character));
}
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) && !Character.isDigit(lowerCamelCase.charAt(characterIndex - 1)))) {
snakeCase.append('_');
}
snakeCase.append(Character.toLowerCase(character));
}
return snakeCase.toString();
}
}
|