#java #string #java-stream
#java #строка #java-поток
Вопрос:
С потоками Java я могу преобразовать список String
s, разделенный запятыми, в a List
, но мне также нужно удалить подстроку перед каждой строкой, если она присутствует. Как я могу сделать это в потоках?
Что у меня есть до сих пор:
String source = "TF03,TF05,TF06,SQ07";
List<String> sourceList = Stream.of(source.split(",", -1))
.collect(Collectors.toList());
Теперь мне нужно удалить «TF» или «SQ» или другие префиксы в каждой строке.
Мне нужно отредактировать исходный вопрос:
Мне нужно удалить «TF» или «SQ» или другие префиксы, но этот префикс также может быть в виде строки.
String substringToRemove = "TF";
String source = "TF03,TF05,TF06,SQ07";
List<String> sourceList = Stream.of(source.split(",", -1))
.collect(Collectors.toList());
Ответ №1:
Вы можете использовать Stream#map
with String#replaceAll
.
String source = "TF03,TF05,TF06,SQ07";
List<String> sourceList = Stream.of(source.split(",", -1))
.map(str -> str.replaceAll("^TF|SQ", ""))
.collect(Collectors.toList());