Skip to content

Commit

Permalink
Add StringUtility#camelCaseToUpperCase
Browse files Browse the repository at this point in the history
  • Loading branch information
ralph-steiner committed Oct 8, 2021
1 parent f4e7ec4 commit 865c2d1
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -737,6 +737,19 @@ public void testLowercaseFirst() {
assertEquals("fOO BAR", StringUtility.lowercaseFirst("FOO BAR"));
}

@Test
public void testCamelCaseToUpperCase() {
assertEquals(null, StringUtility.camelCaseToUpperCase(null));
assertEquals("", StringUtility.camelCaseToUpperCase(""));
assertEquals(" ", StringUtility.camelCaseToUpperCase(" "));
assertEquals("A", StringUtility.camelCaseToUpperCase("A"));
assertEquals("B", StringUtility.camelCaseToUpperCase("b"));
assertEquals("FOO", StringUtility.camelCaseToUpperCase("Foo"));
assertEquals("FOO", StringUtility.camelCaseToUpperCase("foo"));
assertEquals("FOO_BAR", StringUtility.camelCaseToUpperCase("FooBar"));
assertEquals("FOO_BAR", StringUtility.camelCaseToUpperCase("fooBar"));
}

@Test
public void testRandomId() {
assertNotNull(StringUtility.randomId());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1147,6 +1147,33 @@ public static String uppercaseFirst(String s) {
return s.substring(0, 1).toUpperCase() + s.substring(1);
}

/**
* Transforms a camel case formatted string to upper case with underlines string.
* <p>
* Examples:
* <ul>
* <li>foo -> FOO
* <li>fooBar -> FOO_BAR
* <li>FooBar -> FOO_BAR
* </ul>
*/
public static String camelCaseToUpperCase(String s) {
if (isNullOrEmpty(s)) {
return s;
}
int len = s.length();
StringBuilder builder = new StringBuilder(len);
builder.append(Character.toUpperCase(s.charAt(0)));
for (int i = 1; i < len; i++) {
char c = s.charAt(i);
if (Character.isUpperCase(c)) {
builder.append('_');
}
builder.append(Character.toUpperCase(c));
}
return builder.toString();
}

/**
* Null-safe version of {@link String#split(String)}.
* <p>
Expand Down

0 comments on commit 865c2d1

Please sign in to comment.