From 8fbdbd4e9e0f93c1706f279f310d3c7e0d594dd8 Mon Sep 17 00:00:00 2001 From: Shekhar Gulati Date: Sun, 22 May 2016 00:15:46 +0530 Subject: [PATCH] Fixed #45. Added support for `truncate` function --- src/main/java/strman/Strman.java | 19 +++++++++++++++++++ src/test/java/strman/StrmanTest.java | 12 ++++++++++++ 2 files changed, 31 insertions(+) diff --git a/src/main/java/strman/Strman.java b/src/main/java/strman/Strman.java index f608855..2ce9825 100644 --- a/src/main/java/strman/Strman.java +++ b/src/main/java/strman/Strman.java @@ -866,6 +866,25 @@ public abstract class Strman { return value.split("\\W+"); } + /** + * Truncate the unsecured form string, cutting the independent string of required position. + * + * @param value Value will be truncated unsecurely. + * @param length Size of the returned string. + * @param filler Value that will be added to the end of the return string. Example: '...' + * @return String truncated unsafely. + */ + public static String truncate(final String value, final int length, final String filler) { + validate(value, NULL_STRING_PREDICATE, NULL_STRING_MSG_SUPPLIER); + if (length == 0) { + return ""; + } + if (length >= value.length()) { + return value; + } + return append(value.substring(0, length - filler.length()), filler); + } + 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 d389ee3..f3b9044 100644 --- a/src/test/java/strman/StrmanTest.java +++ b/src/test/java/strman/StrmanTest.java @@ -632,6 +632,18 @@ public class StrmanTest { assertThat(safeTruncate("A Javascript string manipulation library.", 15, "..."), equalTo("A Javascript...")); assertThat(safeTruncate("A Javascript string manipulation library.", 14, "..."), equalTo("A...")); assertThat(safeTruncate("A Javascript string manipulation library.", 13, "..."), equalTo("A...")); + } + @Test + public void truncate_shouldTruncateString() throws Exception { + assertThat(truncate("foo bar", 0, "."), equalTo("")); + assertThat(truncate("foo bar", 3, "."), equalTo("fo.")); + assertThat(truncate("foo bar", 2, "."), equalTo("f.")); + assertThat(truncate("foo bar", 4, "."), equalTo("foo.")); + assertThat(truncate("foo bar", 7, "."), equalTo("foo bar")); + assertThat(truncate("foo bar", 8, "."), equalTo("foo bar")); + assertThat(truncate("A Javascript string manipulation library.", 16, "..."), equalTo("A Javascript ...")); + assertThat(truncate("A Javascript string manipulation library.", 15, "..."), equalTo("A Javascript...")); + assertThat(truncate("A Javascript string manipulation library.", 14, "..."), equalTo("A Javascrip...")); } } \ No newline at end of file