java通过stream实现字符串与map互转

发布时间:2023年12月22日

题目如下

String data = "1:a,2:b,3:c";
1.编写一个方法将以上格式的字符串转换为一个map, key为:前的字符串, value为:后的字符串, 键值对用,分隔;
2.编写一个方法将上面生成的map还原成原始字符串,对key进行倒序


要求使用stream进行处理

这个string和map互转的问题如果不用?stream 会有很多方式处理,但是用了stream也有很多方式,但是想了一个完全用stream处理的方式如下

import java.util.Comparator;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;


public class TestData {

    public static void main(String[] args) {

        /**
         *
         * String data = "1:a,2:b,3:c";
         * 1.编写一个方法将以上格式的字符串转换为一个map, key为:前的字符串, value为:后的字符串, 键值对用,分隔;
         * 2.编写一个方法将上面生成的map还原成原始字符串,对key进行倒序
         * 要求使用stream进行处理
         *
         */

        String data = "3:c,1:a,4:d,2:b";
        Map<String, String> map = Stream.of(data.split(",")).map(s -> s.split(":")).collect(Collectors.toMap(key -> key[0], value -> value[1]));
        System.out.println(map);
        String s1 = map.entrySet().stream().sorted(Map.Entry.comparingByKey(Comparator.reverseOrder())).map(entry -> String.join(":", entry.getKey(), entry.getValue())).collect(Collectors.joining(","));
        System.out.println(s1);
    }
}

执行结果为

{1=a, 2=b, 3=c, 4=d}
4:d,3:c,2:b,1:a

文章来源:https://blog.csdn.net/zlpzlpzyd/article/details/135160664
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。