From 8ec7c8eae0d647e3f8362bc4d97d45efd47dc93c Mon Sep 17 00:00:00 2001 From: Shekhar Gulati Date: Sat, 21 May 2016 18:18:21 +0530 Subject: [PATCH] Fixed #16 and #17. Added support for `prepend` and `prependArray` function --- src/main/java/strman/Strman.java | 30 ++++++++++++++++++++++++++++ src/test/java/strman/StrmanTest.java | 17 ++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/src/main/java/strman/Strman.java b/src/main/java/strman/Strman.java index f26a1eb..f8e9a1e 100644 --- a/src/main/java/strman/Strman.java +++ b/src/main/java/strman/Strman.java @@ -624,6 +624,36 @@ public abstract class Strman { return value.length(); } + /** + * Return a new String starting with prepends + * + * @param value The input String + * @param prepends Strings to prepend + * @return The prepended String + */ + public static String prepend(final String value, final String... prepends) { + return prependArray(value, prepends); + } + + /** + * Return a new String starting with prepends + * + * @param value The input String + * @param prepends Strings to prepend + * @return The prepended String + */ + public static String prependArray(final String value, final String[] prepends) { + validate(value, NULL_STRING_PREDICATE, NULL_STRING_MSG_SUPPLIER); + if (prepends == null || prepends.length == 0) { + return value; + } + StringJoiner joiner = new StringJoiner(""); + for (String prepend : prepends) { + joiner.add(prepend); + } + return joiner.toString() + value; + } + 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 c388bfd..0a39540 100644 --- a/src/test/java/strman/StrmanTest.java +++ b/src/test/java/strman/StrmanTest.java @@ -481,4 +481,21 @@ public class StrmanTest { assertThat(leftTrim(" strman"), equalTo("strman")); assertThat(leftTrim(" strman "), equalTo("strman ")); } + + @Test + public void prepend_shouldPrependStrings() throws Exception { + assertThat(prepend("r", "f", "o", "o", "b", "a"), equalTo("foobar")); + assertThat(prepend("foobar"), equalTo("foobar")); + assertThat(prepend("", "foobar"), equalTo("foobar")); + assertThat(prepend("bar", "foo"), equalTo("foobar")); + } + + @Test + public void prependArray_shouldPrependStrings() throws Exception { + assertThat(prependArray("r", new String[]{"f", "o", "o", "b", "a"}), equalTo("foobar")); + assertThat(prependArray("foobar", new String[0]), equalTo("foobar")); + assertThat(prependArray("", new String[]{"foobar"}), equalTo("foobar")); + assertThat(prependArray("bar", new String[]{"foo"}), equalTo("foobar")); + } + } \ No newline at end of file