Skip to content

Commit 6b7638b

Browse files
committed
- B Changed StringUtils.split to accept regex and no longer trim by default.
1 parent 98313f7 commit 6b7638b

File tree

4 files changed

+23
-31
lines changed

4 files changed

+23
-31
lines changed

approvaltests-util-tests/src/test/java/com/spun/util/StringUtilsTest.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
package com.spun.util;
22

33
import org.approvaltests.Approvals;
4+
import org.approvaltests.core.Options;
45
import org.approvaltests.reporters.AutoApproveReporter;
56
import org.approvaltests.reporters.UseReporter;
67
import org.approvaltests.utils.parseinput.ParseInput;
7-
import org.junit.jupiter.api.Assumptions;
88
import org.junit.jupiter.api.Test;
99

10-
import java.time.LocalDate;
1110
import java.util.Arrays;
1211
import java.util.List;
1312
import java.util.Map;
@@ -35,15 +34,20 @@ public void testToNameCase()
3534
@Test
3635
public void testSplit()
3736
{
38-
// TODO: continue here next week
39-
Assumptions.assumeFalse(LocalDate.now().isBefore(LocalDate.of(2024, 3, 11)));
37+
var expected = """
38+
'quick brown fox'.split( ) => [quick, brown, fox]
39+
'quick/brown/ fox'.split(/) => [quick, brown, fox]
40+
'quick**brown**fox'.split(\\*\\*) => [quick, brown, fox]
41+
' quick brown fox '.split( ) => [, quick, , , brown, fox]
42+
'quick brown fox'.split(brown) => [quick, fox]
43+
""";
4044
SplitUseCase[] split = {new SplitUseCase("quick brown fox", " "),
4145
new SplitUseCase("quick/brown/ fox", "/"),
42-
new SplitUseCase("quick**brown**fox", "**"),
46+
new SplitUseCase("quick**brown**fox", "\\*\\*"),
4347
new SplitUseCase(" quick brown fox ", " "),
4448
new SplitUseCase("quick brown fox", "brown"),};
4549
Approvals.verifyAll(split, a -> String.format("'%s'.split(%s) => %s", a.start, a.splitOn,
46-
Arrays.toString(StringUtils.split(a.start, a.splitOn))));
50+
Arrays.toString(StringUtils.split(a.start, a.splitOn, true))),new Options().inline(expected));
4751
}
4852
@Test
4953
public void testJavaScript()
@@ -136,6 +140,6 @@ public void testSplitting()
136140
1ś2śś3śś, ś -> [1, 2, , 3, ]
137141
""";
138142
ParseInput.from(expected).withTypes(String.class, String.class)
139-
.verifyAll((i, p) -> Arrays.toString(StringUtils.splitt(i, p)));
143+
.verifyAll((i, p) -> Arrays.toString(StringUtils.split(i, p)));
140144
}
141-
}
145+
}

approvaltests-util-tests/src/test/java/com/spun/util/StringUtilsTest.testSplit.approved.txt

Lines changed: 0 additions & 5 deletions
This file was deleted.

approvaltests-util/src/main/java/com/spun/util/StringUtils.java

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import java.util.Map;
1515
import java.util.Properties;
1616
import java.util.SortedMap;
17-
import java.util.Vector;
1817
import java.util.regex.Matcher;
1918
import java.util.regex.Pattern;
2019

@@ -61,27 +60,21 @@ public static String URLDecode(String input)
6160
}
6261
public static String[] split(String string, String splitOn)
6362
{
64-
return split(string, splitOn, true);
63+
return split(string, splitOn, false);
6564
}
6665
public static String[] split(String string, String splitOn, boolean trim)
6766
{
68-
String[] result = splitt(string, splitOn);
69-
if (trim)
67+
String[] result;
68+
if (string.endsWith(splitOn))
7069
{
71-
result = Query.select(result, a -> a.trim()).asArray();
70+
String ending = "ś".equals(splitOn) ? "š" : "ś";
71+
string = string + ending;
72+
String[] splitted = string.split(splitOn, -1);
73+
result = ArrayUtils.getSubsection(splitted, 0, splitted.length - 1);
74+
} else {
75+
result = string.split(splitOn);
7276
}
73-
return result;
74-
}
75-
public static String[] splitt(String input, String pattern)
76-
{
77-
if (input.endsWith(pattern))
78-
{
79-
String ending = "ś".equals(pattern) ? "š" : "ś";
80-
input = input + ending;
81-
String[] splitted = input.split(pattern, -1);
82-
return ArrayUtils.getSubsection(splitted, 0, splitted.length - 1);
83-
}
84-
return input.split(pattern);
77+
return trim ? Query.select(result, a -> a.trim()).asArray() : result;
8578
}
8679
public static String replace(String string, String find, String replace)
8780
{

approvaltests/src/main/java/org/approvaltests/inline/InlineJavaReporter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ private static void replaceExpected(CodeParts codeParts, String actual)
8383
}
8484
public static String indent(String actual, String tab)
8585
{
86-
String[] split = StringUtils.splitt(actual, "\n");
86+
String[] split = StringUtils.split(actual, "\n");
8787
String output = "";
8888
for (String line : split)
8989
{

0 commit comments

Comments
 (0)