From 0954158be419875518065bd67cc90765efa43eed Mon Sep 17 00:00:00 2001 From: Shekhar Gulati Date: Sat, 21 May 2016 19:54:21 +0530 Subject: [PATCH] Fixed #23. Added support for `repeat` function --- src/main/java/strman/Strman.java | 12 ++++++++++++ src/test/java/strman/StrmanTest.java | 9 +++++++++ 2 files changed, 21 insertions(+) diff --git a/src/main/java/strman/Strman.java b/src/main/java/strman/Strman.java index e8d0623..a9ff6c6 100644 --- a/src/main/java/strman/Strman.java +++ b/src/main/java/strman/Strman.java @@ -744,6 +744,18 @@ public abstract class Strman { return value.replaceAll("\\s", ""); } + /** + * Returns a repeated string given a multiplier. + * + * @param value The input String + * @param multiplier Number of repeats + * @return The String repeated + */ + public static String repeat(final String value, final int multiplier) { + validate(value, NULL_STRING_PREDICATE, NULL_STRING_MSG_SUPPLIER); + return Stream.generate(() -> value).limit(multiplier).collect(joining()); + } + 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 4618a21..e826fef 100644 --- a/src/test/java/strman/StrmanTest.java +++ b/src/test/java/strman/StrmanTest.java @@ -571,4 +571,13 @@ public class StrmanTest { }; Arrays.stream(fixture).forEach(el -> assertThat(removeSpaces(el), equalTo("foobar"))); } + + @Test + public void repeat_shouldRepeatAStringNTimes() throws Exception { + assertThat(repeat("1", 1), equalTo("1")); + assertThat(repeat("1", 2), equalTo("11")); + assertThat(repeat("1", 3), equalTo("111")); + assertThat(repeat("1", 4), equalTo("1111")); + assertThat(repeat("1", 5), equalTo("11111")); + } } \ No newline at end of file