From f16bd2b949882a63acf4607ace610054b6e6dcc5 Mon Sep 17 00:00:00 2001 From: opokharel <66694687+opokharel@users.noreply.github.com> Date: Mon, 11 Apr 2022 21:17:54 -0600 Subject: [PATCH] [BAEL-5518] Create Array of Regex Matches (#12052) * opokharel's code for "A quick and practical example of Hexagonal Architecture in Java" * opokharel - added unit Tests * [BAEL-5518] by @opokharel * updated Files * updated formatting * whitespaceFix * [BAEL-5518] Create Array of Regex Matches * reCreatingPR --- .../src/regex/array/RegexMatches.java | 24 ++++++++++++++ .../regex/array/RegexMatchesUnitTest.java | 33 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 regexMatchesToArray/src/regex/array/RegexMatches.java create mode 100644 regexMatchesToArray/test/regex/array/RegexMatchesUnitTest.java diff --git a/regexMatchesToArray/src/regex/array/RegexMatches.java b/regexMatchesToArray/src/regex/array/RegexMatches.java new file mode 100644 index 0000000000..d7b50d95ca --- /dev/null +++ b/regexMatchesToArray/src/regex/array/RegexMatches.java @@ -0,0 +1,24 @@ +package regex.array; + +import java.util.ArrayList; +import java.util.List; +import java.util.regex.*; + +class RegexMatches { + + String[] regexMatch(String strSearch) + { + List matchesList = new ArrayList(); + String stringToSearch = strSearch; + Pattern p1 = Pattern.compile("780{1}\\d{7}"); + Matcher m1 = p1.matcher(stringToSearch); + while (m1.find()) + { + matchesList.add(m1.group()); + } + int sizeOfNewArray = matchesList.size(); + String newArrayOfMatches[] = new String[sizeOfNewArray]; + matchesList.toArray(newArrayOfMatches); + return newArrayOfMatches; + } +} diff --git a/regexMatchesToArray/test/regex/array/RegexMatchesUnitTest.java b/regexMatchesToArray/test/regex/array/RegexMatchesUnitTest.java new file mode 100644 index 0000000000..3e8f23c4bb --- /dev/null +++ b/regexMatchesToArray/test/regex/array/RegexMatchesUnitTest.java @@ -0,0 +1,33 @@ +package regex.array; + +import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; + +import regex.array.RegexMatches; + +class RegexMatchesUnitTest { + + @Test + void whenFourNums_thenFourMatches() { + RegexMatches rm = new RegexMatches(); + String actual[] = rm.regexMatch("7801111211fsdafasdfa 7802222222 sadfsadfsda7803333333 sadfdasfasd 7804444444"); + + assertArrayEquals(new String[] {"7801111211", "7802222222", "7803333333", "7804444444"}, actual, "success"); + } + + @Test + void whenThreeNums_thenThreeMatches() { + RegexMatches rm = new RegexMatches(); + String actual[] = rm.regexMatch("7801111211fsdafasdfa 780222222 sadfsadfsda7803333333 sadfdasfasd 7804444444"); + + assertArrayEquals(new String[] {"7801111211", "7803333333", "7804444444"}, actual, "success"); + } + + @Test + void whenZeroNums_thenZeroMatches() { + RegexMatches rm = new RegexMatches(); + String actual[] = rm.regexMatch("78011111fsdafasdfa 780222222 sadfsadfsda78033333 sadfdasfasd 7804444"); + + assertArrayEquals(new String[] {}, actual, "success"); + } +}