Javaの8:地図<文字列、文字列>に文字列を変換する方法は?

Phuongさん:

私は地図を持っています:

Map<String, String> utilMap = new HashMap();
utilMap.put("1","1");
utilMap.put("2","2");
utilMap.put("3","3");
utilMap.put("4","4");

私は文字列に変換しました:

String utilMapString = utilMap
                .entrySet()
                .stream()
                .map(e -> e.toString()).collect(Collectors.joining(","));
Out put: 1=1,2=2,3=3,4=4,5=5

Java8で地図にutilMapStringを変換する方法?誰で私を助けることができますか?

user7:

で文字列を分割し,、個々のマップエントリを取得します。その後でそれらを分割=キーと値を取得します。

Map<String, String> reconstructedUtilMap = Arrays.stream(utilMapString.split(","))
            .map(s -> s.split("="))
            .collect(Collectors.toMap(s -> s[0], s -> s[1]));

注:としては、によって指摘アンドレアス@コメントで、これはマップと文字列の間の変換に信頼性の高い方法ではありません

EDIT:この提案のためのホルガーに感謝します。

使用するs.split("=", 2)配列は二つの要素より大きくなることはありませんことを保証します。(値が持っているとき、これは内容を失わないために有用であろう=

例:入力文字列がある"a=1,b=2,c=3=44=5555"あなたが得ます{a=1, b=2, c=3=44=5555}

以前(ちょうど使用してs.split("="))与えます{a=1, b=2, c=3}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=177185&siteId=1