Pav*_*van 2 java foreach lambda java-stream
下面是我的String列表.
["sunday", "monday", "tuesday", "wednesday", "fri", "satur"]
Run Code Online (Sandbox Code Playgroud)
我想要做删除"天"从元素;如果它与"天"的结局.如何在Lambda中做到这一点?
列表中的预期输出:
["sun", "mon", "tues", "wednes", "fri", "satur"]
Run Code Online (Sandbox Code Playgroud)
我尝试了以下代码,但无法将值分配给列表
daysList.stream().forEach(s -> { if(s.endsWith("day")) {
s = s.substring(0, s.indexOf("day"));
}});
Run Code Online (Sandbox Code Playgroud)
有人可以帮我这个吗?
VGR*_*VGR 10
这里的大多数答案都使用Stream,但你根本不应该使用Stream:
daysList.replaceAll(s -> s.replaceFirst("day$", ""));
Run Code Online (Sandbox Code Playgroud)
使用流迭代forEach不起作用; 您需要使用将您修改的每个元素映射到新流map.然后,您可以将结果收集回列表.
daysList = daysList.stream()
.map(s -> s.endsWith("day") ? s.substring(0, s.length()-3) : s)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6828 次 |
| 最近记录: |