在Java流中拆分字符串
发布时间:2020-12-15 08:26:57 所属栏目:Java 来源:网络整理
导读:我有一个POJO类产品 ListProduct list = new ArrayList();list.add(new Product(1,"HP Laptop Speakers",25000));list.add(new Product(30,"Acer Keyboard",300));list.add(new Product(2,"Dell Mouse",150)); 现在我想拆分列表以获得HP-Laptop-Speakers Ace
我有一个POJO类产品
List<Product> list = new ArrayList<>(); list.add(new Product(1,"HP Laptop Speakers",25000)); list.add(new Product(30,"Acer Keyboard",300)); list.add(new Product(2,"Dell Mouse",150)); 现在我想拆分列表以获得HP-Laptop-Speakers&& Acer-Keyboard&& Dell-Mouse的输出. 我只想在流中使用单个衬垫. Optional<String> temp = list.stream(). map(x -> x.name). map(x -> x.split(" ")[0]). reduce((str1,str2) -> str1 + "&&" + str2); System.out.println(temp.get()); 输出:HP& Acer&& Dell 有人可以帮我吗. 解决方法
首先,不需要split()操作.虽然您可以拆分所有部分然后将它们连接在一起,但使用replace或replaceAll调用则更简单.
其次,reduce操作效率不高,因为它创建了大量的中间字符串和StringBuilder.相反,您应该使用String连接收集器,这更有效: String temp = list.stream() .map(x -> x.name.replace(" ","-")) .collect(Collectors.joining("&&")); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读