From d0c2a10a6273fd6082f084e95156653ca55ce1be Mon Sep 17 00:00:00 2001 From: lizho Date: Fri, 10 Nov 2017 13:59:03 +0800 Subject: [PATCH] Update Strman.java (#97) * Update Strman.java fix bug in between() * Update StrmanTests.java * Update StrmanTests.java --- src/main/java/strman/Strman.java | 4 +++- src/test/java/strman/StrmanTests.java | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) 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