为了账号安全,请及时绑定邮箱和手机立即绑定

需要一个功能接口来操作字符串

需要一个功能接口来操作字符串

慕村225694 2021-11-24 14:44:18
我必须遍历一组键/值对并修改每个键(不是值)以删除前置字符串。我试图在一个声明中做到这一点,但需要一点帮助。我确定我需要.map()做手术,但我无法进行。在尝试任何转换之前,这是我的代码:Map<String, String> properties = configs.stream()                 .flatMap(config -> config.getProperties().entrySet().stream())                 .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (left, right) -> right));所以我天真的解决方案是包装Map.Entry::getKey在一个String函数中,但我收到一个编译错误,说需要一个函数式接口。有什么我可以在这里使用的开箱即用的东西,还是我真的需要实现我自己的接口来摆脱字符串?
查看完整描述

1 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

代替


Collectors.toMap(

    Map.Entry::getKey,

    ...

您可以使用


Collectors.toMap(

    e -> StringUtils.removeStart(e.getKey(), "prefix to remove"),

    ...

或者


Collectors.toMap(

    e -> e.getKey().substring("prefix to remove".length()),

    ...

如果您没有 Apache Commons 依赖项


查看完整回答
反对 回复 2021-11-24
  • 1 回答
  • 0 关注
  • 135 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信