From c670ac916623acc7b738c0f7f28119f4b3c23062 Mon Sep 17 00:00:00 2001 From: Abhinab Kanrar Date: Sat, 11 Feb 2017 20:59:57 +0530 Subject: [PATCH] adding more functionality in split/join, added chars() usage (#1155) * rest with spark java * 4 * Update Application.java * indentation changes * spring @requestmapping shortcuts * removing spring requestmapping and pushing spring-mvc-java * Joining/Splitting Strings with Java and Stream API * adding more join/split functionality --- core-java/0.004102810554955205 | 0 core-java/0.04832801936270381 | 0 core-java/0.5633433244738808 | 0 core-java/0.6256429734439612 | 0 core-java/0.9799201796740292 | 0 .../baeldung/streamApi/JoinerSplitter.java | 13 ++++++++ .../baeldung/stream/JoinerSplitterTest.java | 31 +++++++++++++++++-- 7 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 core-java/0.004102810554955205 create mode 100644 core-java/0.04832801936270381 create mode 100644 core-java/0.5633433244738808 create mode 100644 core-java/0.6256429734439612 create mode 100644 core-java/0.9799201796740292 diff --git a/core-java/0.004102810554955205 b/core-java/0.004102810554955205 new file mode 100644 index 0000000000..e69de29bb2 diff --git a/core-java/0.04832801936270381 b/core-java/0.04832801936270381 new file mode 100644 index 0000000000..e69de29bb2 diff --git a/core-java/0.5633433244738808 b/core-java/0.5633433244738808 new file mode 100644 index 0000000000..e69de29bb2 diff --git a/core-java/0.6256429734439612 b/core-java/0.6256429734439612 new file mode 100644 index 0000000000..e69de29bb2 diff --git a/core-java/0.9799201796740292 b/core-java/0.9799201796740292 new file mode 100644 index 0000000000..e69de29bb2 diff --git a/core-java/src/main/java/com/baeldung/streamApi/JoinerSplitter.java b/core-java/src/main/java/com/baeldung/streamApi/JoinerSplitter.java index 5183921dea..10bee06f1e 100644 --- a/core-java/src/main/java/com/baeldung/streamApi/JoinerSplitter.java +++ b/core-java/src/main/java/com/baeldung/streamApi/JoinerSplitter.java @@ -14,10 +14,23 @@ public class JoinerSplitter { .collect(Collectors.joining(",")); } + public static String joinWithPrefixPostFix ( String[] arrayOfString ) { + return Arrays.asList(arrayOfString) + .stream() + .map(x -> x) + .collect(Collectors.joining(",","[","]")); + } + public static List split ( String str ) { return Stream.of(str.split(",")) .map (elem -> new String(elem)) .collect(Collectors.toList()); } + public static List splitToListOfChar ( String str ) { + return str.chars() + .mapToObj(item -> (char) item) + .collect(Collectors.toList()); + } + } diff --git a/core-java/src/test/java/com/baeldung/stream/JoinerSplitterTest.java b/core-java/src/test/java/com/baeldung/stream/JoinerSplitterTest.java index 19d945f836..b995976b2c 100644 --- a/core-java/src/test/java/com/baeldung/stream/JoinerSplitterTest.java +++ b/core-java/src/test/java/com/baeldung/stream/JoinerSplitterTest.java @@ -13,7 +13,9 @@ public class JoinerSplitterTest { @Test public void provided_array_convert_to_stream_and_convert_to_string() { + String[] programming_languages = {"java", "python", "nodejs", "ruby"}; + String expectation = "java,python,nodejs,ruby"; String result = JoinerSplitter.join(programming_languages); @@ -21,7 +23,17 @@ public class JoinerSplitterTest { } @Test - public void provided_list_convert_to_stream_and_convert_to_list() { + public void provided_array_convert_to_stream_and_convert_to_prefixPostfixString() { + String[] programming_languages = {"java", "python", + "nodejs", "ruby"}; + String expectation = "[java,python,nodejs,ruby]"; + + String result = JoinerSplitter.joinWithPrefixPostFix(programming_languages); + assertEquals(result, expectation); + } + + @Test + public void provided_string_convert_to_stream_and_convert_to_listOfString() { String programming_languages = "java,python,nodejs,ruby"; List expectation = new ArrayList(); @@ -34,5 +46,20 @@ public class JoinerSplitterTest { assertEquals(result, expectation); } - + + @Test + public void provided_string_convert_to_stream_and_convert_to_listOfChar() { + String programming_languages = "java,python,nodejs,ruby"; + + List expectation = new ArrayList(); + char[] charArray = programming_languages.toCharArray(); + for (char c : charArray) { + expectation.add(c); + } + + List result = JoinerSplitter.splitToListOfChar(programming_languages); + assertEquals(result, expectation); + + } + }