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

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

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

呼如林 2021-06-16 14:01:50
我编写了以下代码:    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]我怎样才能摆脱null一开始的打印?是否可以避免 [ ] 打印?我如何使用流来做到这一点?
查看完整描述

3 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

初始化reqParams为空字符串。那是,

String reqParams = null;

变成

String reqParams = "";


查看完整回答
反对 回复 2021-06-23
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

您可以使用类的join方法String将数组转换为字符串,避免[ ]字符。此外,如果您使用Map.Entry类型参数并遍历条目集而不是键集,则不需要原始代码中的所有强制转换和额外括号。


for( Map.Entry<String,String[]> entry : params.entrySet()) {

    reqParams = reqParams + entry.getKey() + "=" + String.join(",", entry.getValue()) + " ";

}

所以在这里,join获取您的数组并用逗号分隔所有元素。


最后,如果您初始化reqParams为""而不是null,则null不会打印该单词。


String reqParams = "";


查看完整回答
反对 回复 2021-06-23
  • 3 回答
  • 0 关注
  • 125 浏览

添加回答

举报

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