From 8fda832b80177432ef15021fe164de8ec438bd20 Mon Sep 17 00:00:00 2001 From: Shekhar Gulati Date: Mon, 16 May 2016 18:17:41 +0530 Subject: [PATCH] Added support for `base64Decode` --- src/main/java/strman/Strman.java | 15 +++++++++++++-- src/test/java/strman/StrmanTest.java | 8 ++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/main/java/strman/Strman.java b/src/main/java/strman/Strman.java index 0eb981e..2316b5a 100644 --- a/src/main/java/strman/Strman.java +++ b/src/main/java/strman/Strman.java @@ -1,6 +1,7 @@ package strman; import java.util.Arrays; +import java.util.Base64; import java.util.Optional; import java.util.StringJoiner; import java.util.function.Predicate; @@ -143,9 +144,9 @@ public abstract class Strman { public static boolean contains(final String value, final String needle, final boolean caseSensitive) { validate(value, NULL_STRING_PREDICATE, NULL_STRING_MSG_SUPPLIER); if (caseSensitive) { - return value.indexOf(needle) > -1; + return value.contains(needle); } - return value.toLowerCase().indexOf(needle.toLowerCase()) > -1; + return value.toLowerCase().contains(needle.toLowerCase()); } /** @@ -294,6 +295,16 @@ public abstract class Strman { return _value.startsWith(_prefix) ? value : prefix + value; } + /** + * Decodes data encoded with MIME base64 + * + * @param value The data to decode + * @return decoded data + */ + public static String base64Decode(final String value) { + return new String(Base64.getDecoder().decode(value)); + } + private static long countSubstr(String value, String subStr, boolean allowOverlapping, long count) { int position = value.indexOf(subStr); if (position == -1) { diff --git a/src/test/java/strman/StrmanTest.java b/src/test/java/strman/StrmanTest.java index 5184094..eb10f41 100644 --- a/src/test/java/strman/StrmanTest.java +++ b/src/test/java/strman/StrmanTest.java @@ -246,5 +246,13 @@ public class StrmanTest { assertThat(ensureLeft("bar", "FOO", false), equalTo("FOObar")); } + @Test + public void base64Decode_shouldDecodeABase64DecodedValueToString() throws Exception { + assertThat(base64Decode("c3RybWFu"), equalTo("strman")); + assertThat(base64Decode("Zm9v"), equalTo("foo")); + assertThat(base64Decode("YmFy"), equalTo("bar")); + assertThat(base64Decode("YsOhciE="), equalTo("bár!")); + assertThat(base64Decode("5ryi"), equalTo("漢")); + } } \ No newline at end of file