Мне нужно применить список регулярных выражений к строке, поэтому я подумал использовать java8 map lower:
List<SimpleEntry<String, String>> list = new ArrayList<>();
list.add(new SimpleEntry<>("\\s*\\bper\\s+.*$", ""));
list.add(new SimpleEntry<>("\\s*\\bda\\s+.*$", ""));
list.add(new SimpleEntry<>("\\s*\\bcon\\s+.*$", ""));
String s = "Tavolo da cucina";
String reduced = list.stream()
.reduce(s, (v, entry) -> v.replaceAll(entry.getKey(), entry.getValue()) , (c, d) -> c);
На самом деле этот код может быть не очень красивым, но он работает.Я знаю, что это нельзя распараллелить, и для меня это нормально.
Теперь мой вопрос: есть ли шанс с Java8 (или более поздней версией) написать что-то более элегантное?Я имею в виду также избегать добавления бесполезной функции объединителя.