diff --git a/core-java-modules/core-java-string-operations/src/test/java/com/baeldung/splitkeepdelimiters/SplitAndKeepDelimitersUnitTest.java b/core-java-modules/core-java-string-operations-3/src/test/java/com/baeldung/splitkeepdelimiters/SplitAndKeepDelimitersUnitTest.java similarity index 63% rename from core-java-modules/core-java-string-operations/src/test/java/com/baeldung/splitkeepdelimiters/SplitAndKeepDelimitersUnitTest.java rename to core-java-modules/core-java-string-operations-3/src/test/java/com/baeldung/splitkeepdelimiters/SplitAndKeepDelimitersUnitTest.java index 7a9e0cd710..ede8be4c05 100644 --- a/core-java-modules/core-java-string-operations/src/test/java/com/baeldung/splitkeepdelimiters/SplitAndKeepDelimitersUnitTest.java +++ b/core-java-modules/core-java-string-operations-3/src/test/java/com/baeldung/splitkeepdelimiters/SplitAndKeepDelimitersUnitTest.java @@ -14,11 +14,11 @@ public class SplitAndKeepDelimitersUnitTest { private final String positivelookAheadRegex = "((?=@))"; private final String positivelookBehindRegex = "((?<=@))"; private final String positivelookAroundRegex = "((?=@)|(?<=@))"; - private final String positiveLookAroundMultiDelimiterRegex = "((?<=;|:|,|#|@|~)|(?=;|:|,|#|@|~))"; + private final String positiveLookAroundMultiDelimiterRegex = "((?=:|#|@)|(?<=:|#|@))"; private String text = "Hello@World@This@Is@A@Java@Program"; - private String textMixed = "@Hello;World@This:Is,A#Java~Program"; - private String textMixed2 = "pg-no.10@hello;world@this:is,a#10words|Java~Program"; + private String textMixed = "@HelloWorld@This:Is@A#Java#Program"; + private String textMixed2 = "pg@no;10@hello;world@this;is@a#10words;Java#Program"; @Test public void givenString_splitAndKeepDelimiters_using_javaLangString() { @@ -29,25 +29,31 @@ public class SplitAndKeepDelimitersUnitTest { assertThat(text.split(positivelookAroundRegex)).containsExactly("Hello", "@", "World", "@", "This", "@", "Is", "@", "A", "@", "Java", "@", "Program"); - assertThat(textMixed.split(positiveLookAroundMultiDelimiterRegex)).containsExactly("@", "Hello", ";", "World", "@", "This", ":", "Is", ",", "A", "#", "Java", "~", "Program"); + assertThat(textMixed.split(positiveLookAroundMultiDelimiterRegex)).containsExactly("@", "HelloWorld", "@", "This", ":", "Is", "@", "A", "#", "Java", "#", "Program"); } @Test public void givenString_splitAndKeepDelimiters_using_ApacheCommonsLang3StringUtils() { - assertThat(StringUtils.splitByCharacterType(textMixed2)).containsExactly("pg", "-", "no", ".", "10", "@", "hello", ";", "world", "@", "this", ":", "is", ",", "a", "#", "10", "words", "|", "J", "ava", "~", "P", "rogram"); + assertThat(StringUtils.splitByCharacterType(textMixed2)).containsExactly("pg", "@", "no", ";", "10", "@", "hello", ";", "world", "@", "this", ";", "is", "@", "a", "#", "10", "words", ";", "J", "ava", "#", "P", "rogram"); } @Test public void givenString_splitAndKeepDelimiters_using_GuavaSplitter() { + assertThat(Splitter.onPattern(positivelookAroundRegex) + .splitToList(text)).containsExactly("Hello", "@", "World", "@", "This", "@", "Is", "@", "A", "@", "Java", "@", "Program"); + + assertThat(Splitter.on(Pattern.compile(positivelookAroundRegex)) + .splitToList(text)).containsExactly("Hello", "@", "World", "@", "This", "@", "Is", "@", "A", "@", "Java", "@", "Program"); + assertThat(Splitter.onPattern(positiveLookAroundMultiDelimiterRegex) - .splitToList(textMixed)).containsExactly("@", "Hello", ";", "World", "@", "This", ":", "Is", ",", "A", "#", "Java", "~", "Program"); + .splitToList(textMixed)).containsExactly("@", "HelloWorld", "@", "This", ":", "Is", "@", "A", "#", "Java", "#", "Program"); assertThat(Splitter.on(Pattern.compile(positiveLookAroundMultiDelimiterRegex)) - .splitToList(textMixed)).containsExactly("@", "Hello", ";", "World", "@", "This", ":", "Is", ",", "A", "#", "Java", "~", "Program"); + .splitToList(textMixed)).containsExactly("@", "HelloWorld", "@", "This", ":", "Is", "@", "A", "#", "Java", "#", "Program"); } }