猿问

如何将映射中的所有键和值打印为单个字符串?

我编写了以下代码:


    String reqParams = null;


    Map<String, String[]> params = request.getParameterMap();


    for (Object key : params.keySet()) {

        String keyStr = (String) key;

        String[] value = params.get(keyStr);

        reqParams = reqParams + ((String) key + "=" + Arrays.toString(value) + " ");

    }


   System.out.println(reqParams);

我有以下输出:


  nullorderId=[01] orderStatus=[delivered]

  1. 我怎样才能摆脱null一开始的打印?

  2. 是否可以避免 [ ] 打印?

  3. 我如何使用流来做到这一点?


呼如林
浏览 126回答 3
3回答

莫回无

初始化reqParams为空字符串。那是,String&nbsp;reqParams&nbsp;=&nbsp;null;变成String&nbsp;reqParams&nbsp;=&nbsp;"";

慕盖茨4494581

您可以使用类的join方法String将数组转换为字符串,避免[ ]字符。此外,如果您使用Map.Entry类型参数并遍历条目集而不是键集,则不需要原始代码中的所有强制转换和额外括号。for( Map.Entry<String,String[]> entry : params.entrySet()) {&nbsp; &nbsp; reqParams = reqParams + entry.getKey() + "=" + String.join(",", entry.getValue()) + " ";}所以在这里,join获取您的数组并用逗号分隔所有元素。最后,如果您初始化reqParams为""而不是null,则null不会打印该单词。String reqParams = "";
随时随地看视频慕课网APP

相关分类

Java
我要回答