下面列出了java.util.regex.Pattern#splitAsStream ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Test(dataProvider = "Stream<String>")
public void testStrings(String description, String input, Pattern pattern, List<String> expected) {
Supplier<Stream<String>> ss = () -> pattern.splitAsStream(input);
withData(TestData.Factory.ofSupplier(description, ss))
.stream(LambdaTestHelpers.identity())
.expectedResult(expected)
.exercise();
}
@Test(dataProvider = "Stream<String>")
public void testStrings(String description, String input, Pattern pattern, List<String> expected) {
Supplier<Stream<String>> ss = () -> pattern.splitAsStream(input);
withData(TestData.Factory.ofSupplier(description, ss))
.stream(LambdaTestHelpers.identity())
.expectedResult(expected)
.exercise();
}
@Test(dataProvider = "Stream<String>")
public void testStrings(String description, String input, Pattern pattern, List<String> expected) {
Supplier<Stream<String>> ss = () -> pattern.splitAsStream(input);
withData(TestData.Factory.ofSupplier(description, ss))
.stream(LambdaTestHelpers.identity())
.expectedResult(expected)
.exercise();
}
@Test(dataProvider = "Stream<String>")
public void testStrings(String description, String input, Pattern pattern, List<String> expected) {
Supplier<Stream<String>> ss = () -> pattern.splitAsStream(input);
withData(TestData.Factory.ofSupplier(description, ss))
.stream(LambdaTestHelpers.identity())
.expectedResult(expected)
.exercise();
}
@Test(dataProvider = "Stream<String>")
public void testStrings(String description, String input, Pattern pattern, List<String> expected) {
Supplier<Stream<String>> ss = () -> pattern.splitAsStream(input);
withData(TestData.Factory.ofSupplier(description, ss))
.stream(LambdaTestHelpers.identity())
.expectedResult(expected)
.exercise();
}
@Test(dataProvider = "Patterns")
public void testPatternSplitAsStream(String description, String input, Pattern pattern) {
// Derive expected result from pattern.split
List<String> expected = Arrays.asList(pattern.split(input));
Supplier<Stream<String>> ss = () -> pattern.splitAsStream(input);
withData(TestData.Factory.ofSupplier(description, ss))
.stream(LambdaTestHelpers.identity())
.expectedResult(expected)
.exercise();
}
@Test
public void testLateBinding() {
Pattern pattern = Pattern.compile(",");
StringBuilder sb = new StringBuilder("a,b,c,d,e");
Stream<String> stream = pattern.splitAsStream(sb);
sb.setLength(3);
assertEquals(Arrays.asList("a", "b"), stream.collect(Collectors.toList()));
stream = pattern.splitAsStream(sb);
sb.append(",f,g");
assertEquals(Arrays.asList("a", "b", "f", "g"), stream.collect(Collectors.toList()));
}
@Test(dataProvider = "Stream<String>")
public void testStrings(String description, String input, Pattern pattern, List<String> expected) {
Supplier<Stream<String>> ss = () -> pattern.splitAsStream(input);
withData(TestData.Factory.ofSupplier(description, ss))
.stream(LambdaTestHelpers.identity())
.expectedResult(expected)
.exercise();
}
@Test(dataProvider = "Stream<String>")
public void testStrings(String description, String input, Pattern pattern, List<String> expected) {
Supplier<Stream<String>> ss = () -> pattern.splitAsStream(input);
withData(TestData.Factory.ofSupplier(description, ss))
.stream(LambdaTestHelpers.identity())
.expectedResult(expected)
.exercise();
}
@Test(dataProvider = "Stream<String>")
public void testStrings(String description, String input, Pattern pattern, List<String> expected) {
Supplier<Stream<String>> ss = () -> pattern.splitAsStream(input);
withData(TestData.Factory.ofSupplier(description, ss))
.stream(LambdaTestHelpers.identity())
.expectedResult(expected)
.exercise();
}
@Test(dataProvider = "Stream<String>")
public void testStrings(String description, String input, Pattern pattern, List<String> expected) {
Supplier<Stream<String>> ss = () -> pattern.splitAsStream(input);
withData(TestData.Factory.ofSupplier(description, ss))
.stream(LambdaTestHelpers.identity())
.expectedResult(expected)
.exercise();
}
@Test(dataProvider = "Stream<String>")
public void testStrings(String description, String input, Pattern pattern, List<String> expected) {
Supplier<Stream<String>> ss = () -> pattern.splitAsStream(input);
withData(TestData.Factory.ofSupplier(description, ss))
.stream(LambdaTestHelpers.identity())
.expectedResult(expected)
.exercise();
}
@Test(dataProvider = "Stream<String>")
public void testStrings(String description, String input, Pattern pattern, List<String> expected) {
Supplier<Stream<String>> ss = () -> pattern.splitAsStream(input);
withData(TestData.Factory.ofSupplier(description, ss))
.stream(LambdaTestHelpers.identity())
.expectedResult(expected)
.exercise();
}
@Test(dataProvider = "Stream<String>")
public void testStrings(String description, String input, Pattern pattern, List<String> expected) {
Supplier<Stream<String>> ss = () -> pattern.splitAsStream(input);
withData(TestData.Factory.ofSupplier(description, ss))
.stream(LambdaTestHelpers.identity())
.expectedResult(expected)
.exercise();
}
/**
* Creates a stream from the given input sequence around matches of the
* given pattern.
*
* <p>
* The stream returned by this method contains each substring of the input
* sequence that is terminated by another subsequence that matches this
* pattern or is terminated by the end of the input sequence. The substrings
* in the stream are in the order in which they occur in the input. Trailing
* empty strings will be discarded and not encountered in the stream.
*
* <p>
* If the given pattern does not match any subsequence of the input then the
* resulting stream has just one element, namely the input sequence in
* string form.
*
* <p>
* When there is a positive-width match at the beginning of the input
* sequence then an empty leading substring is included at the beginning of
* the stream. A zero-width match at the beginning however never produces
* such empty leading substring.
*
* <p>
* If the input sequence is mutable, it must remain constant from the stream
* creation until the execution of the terminal stream operation. Otherwise,
* the result of the terminal stream operation is undefined.
*
* @param str The character sequence to be split
* @param pattern The pattern to use for splitting
*
* @return The stream of strings computed by splitting the input around
* matches of this pattern
* @see Pattern#splitAsStream(CharSequence)
*/
public static StreamEx<String> split(CharSequence str, Pattern pattern) {
if (str.length() == 0)
return of("");
return new StreamEx<>(pattern.splitAsStream(str), StreamContext.SEQUENTIAL);
}