From 4d1cab94d8fab4493b84ffc9acd20ff6bd7e3779 Mon Sep 17 00:00:00 2001 From: BigAdam2005 Date: Thu, 1 Nov 2018 14:15:19 +0100 Subject: [PATCH 1/3] Added binary encoding --- .../com/blankj/utilcode/util/EncodeUtils.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/utilcode/src/main/java/com/blankj/utilcode/util/EncodeUtils.java b/utilcode/src/main/java/com/blankj/utilcode/util/EncodeUtils.java index 8cae11466c..3eff148ebe 100644 --- a/utilcode/src/main/java/com/blankj/utilcode/util/EncodeUtils.java +++ b/utilcode/src/main/java/com/blankj/utilcode/util/EncodeUtils.java @@ -183,4 +183,21 @@ public static CharSequence htmlDecode(final String input) { return Html.fromHtml(input); } } + + public static String binEncode(final String input) { + StringBuilder stringBuilder = new StringBuilder(); + for (char i : input.toCharArray()) { + stringBuilder.append(Integer.toBinaryString(i)); + stringBuilder.append(' '); + } + return stringBuilder.toString(); + } + public static String binDecode(final String input){ + String[] splitted = input.split(" "); + StringBuilder sb = new StringBuilder(); + for(String i : splitted){ + sb.append(((char) Integer.parseInt(i.replace(" ", ""), 2))); + } + return sb.toString(); + } } From 8afdedffe143f7ea965448f3fa4e3279980eaa60 Mon Sep 17 00:00:00 2001 From: BigAdam2005 Date: Thu, 1 Nov 2018 14:24:06 +0100 Subject: [PATCH 2/3] Added unit tests --- .../test/java/com/blankj/utilcode/util/EncodeUtilsTest.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/utilcode/src/test/java/com/blankj/utilcode/util/EncodeUtilsTest.java b/utilcode/src/test/java/com/blankj/utilcode/util/EncodeUtilsTest.java index 6d17fa9075..34197c7d87 100644 --- a/utilcode/src/test/java/com/blankj/utilcode/util/EncodeUtilsTest.java +++ b/utilcode/src/test/java/com/blankj/utilcode/util/EncodeUtilsTest.java @@ -70,4 +70,10 @@ public void htmlEncode_htmlDecode() { assertEquals(html, EncodeUtils.htmlDecode(encodeHtml).toString()); } + @Test + public void binEncode_binDecode(){ + String test = "test"; + String binary = EncodeUtils.binEncode(test); + assertEquals("test", EncodeUtils.binDecode(binary)); + } } \ No newline at end of file From d53d469910b30f95ffb6becccdfa1d23a0a84f67 Mon Sep 17 00:00:00 2001 From: BigAdam2005 Date: Thu, 1 Nov 2018 14:28:02 +0100 Subject: [PATCH 3/3] Added java doc --- .../java/com/blankj/utilcode/util/EncodeUtils.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/utilcode/src/main/java/com/blankj/utilcode/util/EncodeUtils.java b/utilcode/src/main/java/com/blankj/utilcode/util/EncodeUtils.java index 3eff148ebe..75619a8fa8 100644 --- a/utilcode/src/main/java/com/blankj/utilcode/util/EncodeUtils.java +++ b/utilcode/src/main/java/com/blankj/utilcode/util/EncodeUtils.java @@ -184,6 +184,12 @@ public static CharSequence htmlDecode(final String input) { } } + /** + * Return the binary encoded string padded with one space + * + * @param input + * @return binary string + */ public static String binEncode(final String input) { StringBuilder stringBuilder = new StringBuilder(); for (char i : input.toCharArray()) { @@ -192,6 +198,13 @@ public static String binEncode(final String input) { } return stringBuilder.toString(); } + + /** + * Return UTF-8 String from binary + * + * @param input binary string + * @return UTF-8 String + */ public static String binDecode(final String input){ String[] splitted = input.split(" "); StringBuilder sb = new StringBuilder();