【发布时间】:2020-03-30 12:05:42
【问题描述】:
在下面的地图中,如果键包含“tmst”,我必须删除键和值
输入图:
{"sun":"test", "row_mod_tmst":"10:05:20", "when" :"yesterday"}
输出图:
{"sun":"test", "when" :"yesterday"}
我已经尝试了如下,它不起作用
Map<String, Object> withoutTMST = map.entrySet().stream().filter(entry -> (!entry.getKey().endsWith("tmts"))).
collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
【问题讨论】:
-
在您的过滤器中声明:endsWith("TMTS"))。那里有2个错误:1)它说TMTS,而不是应该的TMST。 2)如果你想让它匹配,你必须确保大小写也匹配,换句话说,在你的示例 json 中,TMST 字符串是小写的,所以你的匹配字符串也应该是。
-
这是拼写错误。还是不行
-
endsWith("tmts")应该是endsWith("tmst") -
为什么
endsWith当你在你的问题陈述中说:I have to remove key and values if key contains "tmst"。只需使用contains。