将字符串修改应用于数组/列表

给定一个ArrayList<String>带有文件扩展名的文件名,我怎样才能惯用地获得所有文件名都没有文件扩展名的相同数组。


有很多方法可以做到这一点,我可以轻松地创建一个新数组,但我想知道是否有一种很好的干净的方法来使用单线来做到这一点。


现在我这样做:


List<String> namesWithExt = ...

List<String> namesWithoutExt = new ArrayList<>();

namesWithExt.forEach(name -> namesWithoutExt.add(FilenameUtils.removeExtension(name)));

String[] namesWithoutExt = namesWithExt.toArray(String[]::new);


长风秋雁
浏览 119回答 1
1回答

回首忆惘然

使用Stream:String[]&nbsp;namesWithoutExt&nbsp;=&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;namesWithExt.stream() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.map(name&nbsp;->&nbsp;FilenameUtils.removeExtension(name)) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.toArray(String[]::new);或者:String[]&nbsp;namesWithoutExt&nbsp;=&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;namesWithExt.stream() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.map(FilenameUtils::removeExtension) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.toArray(String[]::new);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java