Применить строковое изменение к массиву / списку - PullRequest
0 голосов
/ 22 октября 2018

Учитывая ArrayList<String> имен файлов с расширением, как я могу идиоматически получить тот же массив со всеми именами файлов без расширения.

Есть много способов сделать это, и я легко могу создатьновый массив, но мне интересно, есть ли хороший чистый способ сделать это с помощью одной строки.

Пока я делаю так:

List<String> namesWithExt = ...
List<String> namesWithoutExt = new ArrayList<>();
namesWithExt.forEach(name -> namesWithoutExt.add(FilenameUtils.removeExtension(name)));
String[] namesWithoutExt = namesWithExt.toArray(String[]::new);

1 Ответ

0 голосов
/ 22 октября 2018

Использование Stream с:

String[] namesWithoutExt = 
    namesWithExt.stream()
                .map(name -> FilenameUtils.removeExtension(name))
                .toArray(String[]::new);

или:

String[] namesWithoutExt = 
    namesWithExt.stream()
                .map(FilenameUtils::removeExtension)
                .toArray(String[]::new);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...