У меня есть список строковых элементов, и я пытаюсь удалить часть строки в каждом элементе и создать новый список с ним. Я могу добиться этого с помощью приведенного ниже кода, но я чувствую, что будет лучший способ справиться с этим с помощью потоковых API. Пожалуйста, дайте мне знать, если есть лучший подход для этой проблемы
См., Например, ниже (упрощенно для объяснения)
List<String> list = new ArrayList<String>();
list.add("Value1.1,Value1.2,Value1.3,Value1.4,Value1.5,Value1.6");
list.add("Value2.1,Value2.2,Value2.3,Value2.4,Value2.5,Vaule2.6");
List<String> newList = list.stream().map(i -> {
List<String> l = Arrays.asList(i.split(","));
return StringUtils.join(ListUtils.sum(l.subList(0, 2),l.subList(4, l.size())),",");
}).collect(Collectors.toList());
newList.forEach(System.out::println);
// Value1.1,Value1.2,Value1.5,Value1.6
// Value2.1,Value2.2,Value2.5,Value1.6
Постановка проблемы:
- Ввод "список" (список строк)
- Выполните итерацию каждого элемента в списке, разделите каждый элемент запятыми, добавьте 3-й и 4-й элемент и воссоедините строку
- Создать новый список с новым строковым элементом
используется: StringUtils, ListUtils от org.apache.commons
Ожидаемый результат:
Value1.1, Value1.2, Value1.5, Value1.6
Value2.1, Value2.2, Value2.5, Value2.6