diff --git a/src/main/java/strman/Strman.java b/src/main/java/strman/Strman.java index 0504c26..9b1e3c2 100644 --- a/src/main/java/strman/Strman.java +++ b/src/main/java/strman/Strman.java @@ -115,7 +115,9 @@ public abstract class Strman { validate(end, NULL_STRING_PREDICATE, () -> "'end' should be not null."); String[] parts = value.split(end); - return Arrays.stream(parts).map(subPart -> subPart.substring(subPart.indexOf(start) + start.length())) + return Arrays.stream(parts) + .filter(subPart -> subPart.contains(start)) + .map(subPart -> subPart.substring(subPart.indexOf(start) + start.length())) .toArray(String[]::new); } diff --git a/src/test/java/strman/StrmanTests.java b/src/test/java/strman/StrmanTests.java index d2db29b..8ab7ffe 100644 --- a/src/test/java/strman/StrmanTests.java +++ b/src/test/java/strman/StrmanTests.java @@ -92,9 +92,9 @@ public class StrmanTests { } @Test - public void between_shouldReturnFullStringWhenStartAndEndDoesNotExist() throws Exception { - assertThat(between("[abc][def]", "{", "}"), arrayContaining("[abc][def]")); - assertThat(between("", "{", "}"), arrayContaining("")); + public void between_shouldReturnEmptyArrayWhenStartAndEndDoesNotExist() throws Exception { + assertThat(between("[abc][def]", "{", "}").length, equalTo(0)); + assertThat(between("", "{", "}").length, equalTo(0)); } @Test