Метод splitAsStream
Метод splitAsStream класса Pattern разбивает
входную строку на поток (Stream) строк, используя
регулярное выражение как разделитель. В первый параметр
мы передаем строку, которую необходимо разбить. Метод
возвращает объект Stream<String>, который можно
обрабатывать лениво, например, с помощью forEach,
map или collect. В отличие от метода
split, который возвращает массив строк,
splitAsStream не создает промежуточный массив,
что делает его более эффективным при обработке
больших строк.
Синтаксис
pattern.splitAsStream(input)
Пример
Давайте разобьем строку "abcde" по разделителю
"c" и выведем каждый элемент потока на экран:
import java.util.regex.Pattern;
import java.util.stream.Stream;
public class Main
{
public static void main(String[] args)
{
Pattern pattern = Pattern.compile("c");
Stream<String> stream = pattern.splitAsStream("abcde");
stream.forEach(System.out::println);
}
}
Результат выполнения кода:
"ab"
"de"
Пример
Давайте разобьем строку "12345" по разделителю
"3" и соберем результат в список:
import java.util.List;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
public class Main
{
public static void main(String[] args)
{
Pattern pattern = Pattern.compile("3");
List<String> res = pattern.splitAsStream("12345")
.collect(Collectors.toList());
System.out.println(res);
}
}
Результат выполнения кода:
[12, 45]