From 4bff84d869f2d714cfd413b047e6cfa6d2561cb6 Mon Sep 17 00:00:00 2001 From: Shekhar Gulati Date: Sun, 22 May 2016 19:00:39 +0530 Subject: [PATCH] Fixed #37. Added support for `toDeCamelCase` function --- src/main/java/strman/Strman.java | 12 ++++++++++++ src/test/java/strman/StrmanTest.java | 6 ++++++ 2 files changed, 18 insertions(+) diff --git a/src/main/java/strman/Strman.java b/src/main/java/strman/Strman.java index 5b73a42..9bf7fec 100644 --- a/src/main/java/strman/Strman.java +++ b/src/main/java/strman/Strman.java @@ -1011,6 +1011,18 @@ public abstract class Strman { return last(value, value.length() - 1); } + /** + * Decamelize String + * + * @param value The input String + * @return String decamelized. + */ + public static String toDecamelize(final String value, final String chr) { + String camelCasedString = toCamelCase(value); + String[] words = camelCasedString.split("(?=\\p{Upper})"); + return Arrays.stream(words).map(w -> w.toLowerCase()).collect(joining(Optional.ofNullable(chr).orElse(" "))); + } + public static String decode(final String value, final int digits, final int radix) { validate(value, NULL_STRING_PREDICATE, NULL_STRING_MSG_SUPPLIER); return Arrays diff --git a/src/test/java/strman/StrmanTest.java b/src/test/java/strman/StrmanTest.java index 648cfe9..f5e0d0d 100644 --- a/src/test/java/strman/StrmanTest.java +++ b/src/test/java/strman/StrmanTest.java @@ -740,4 +740,10 @@ public class StrmanTest { assertThat(toCamelCase("c"), equalTo("c")); } + + @Test + public void toDeCamelCase_shouldDeCamelCaseAString() throws Exception { + assertThat(toDecamelize("camelCase", null), equalTo("camel case")); + assertThat(toDecamelize("camelCase", "_"), equalTo("camel_case")); + } } \ No newline at end of file