diff --git a/core-java-modules/core-java-9-streams/src/main/java/com/baeldung/streams/regexmatches/StreamFromRegexUtil.java b/core-java-modules/core-java-9-streams/src/main/java/com/baeldung/streams/regexmatches/StreamFromRegexUtil.java new file mode 100644 index 0000000000..f7187c79de --- /dev/null +++ b/core-java-modules/core-java-9-streams/src/main/java/com/baeldung/streams/regexmatches/StreamFromRegexUtil.java @@ -0,0 +1,16 @@ +package com.baeldung.streams.regexmatches; + +import java.util.regex.MatchResult; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Stream; + +public class StreamFromRegexUtil { + + public static Stream getStream(String input, String regex) { + Pattern pattern = Pattern.compile(regex); + Matcher matcher = pattern.matcher(input); + return matcher.results().map(MatchResult::group); + } + +} diff --git a/core-java-modules/core-java-9-streams/src/test/java/com/baeldung/streams/regexmatches/StreamFromRegexUnitTest.java b/core-java-modules/core-java-9-streams/src/test/java/com/baeldung/streams/regexmatches/StreamFromRegexUnitTest.java new file mode 100644 index 0000000000..9d8b840e0e --- /dev/null +++ b/core-java-modules/core-java-9-streams/src/test/java/com/baeldung/streams/regexmatches/StreamFromRegexUnitTest.java @@ -0,0 +1,27 @@ +package com.baeldung.streams.regexmatches; + +import org.junit.Test; + +import java.util.List; +import java.util.stream.Collectors; + +import static java.util.Arrays.asList; +import static org.junit.Assert.assertEquals; + +public class StreamFromRegexUnitTest { + + @Test + public void whenInputStringIncludeLettersAndNumbersAndRegex_ThenReturnStreamOfNumbers() { + List result = StreamFromRegexUtil.getStream("There are 3 apples and 2 bananas on the table.", "\\d+") + .collect(Collectors.toList()); + assertEquals(asList("3", "2"), result); + } + + @Test + public void whenInputStringsAndRegex_ThenReturnStreamOfJavaWords() { + List result = StreamFromRegexUtil.getStream("sample sentence with some words Java Java", "\\bJava\\b") + .collect(Collectors.toList()); + assertEquals(asList("Java", "Java"), result); + } + +}