Java-將map拼接成“參數=值&參數=值”


  在使用spring boot寫接口時,有時會遇到簽名的情況,會計算sign值之類的,我們的值計算中,就涉及到了將參數和參數值,按照“k1=v1&k2=v2....”格式拼接,也就是“參數=值&參數=值...”。我采用的思路如下:

  1. 將參數和參數值,put進一個map中
  2. 將map中的元素進行按照格式拼接
        Map<String, String> paraMap = new TreeMap();
     // 將參數放在map中
        paraMap.put("k1", v1);
        paraMap.put("k2", v2);
        paraMap.put("k3", v3);
    
        System.out.println("請求參數:" + paraMap);

        // 將鍵值對用&連接
        String prestr = "";
        for (Map.Entry<String, String> entry : paraMap.entrySet()) {
            prestr = prestr + entry + "&";
        }}   

 這種方法的缺點就是,最后一個參數值后面還會再有一個"&"。但是,我們項目中用的簽名組裝字符串,后面還會再加其他的計算參數,所以對我來說,這種方法就可以使用。

如果你不想要字符串的最后的"&",推薦一個另一個博主的方法,也是可以的:https://www.cnblogs.com/angusbao/p/7728513.html

     List<String> keys = new ArrayList<String>(paraMap.keySet());
        Collections.sort(keys);
        String prestr = "";
        for (int i = 0; i < keys.size(); i++) {
            String key = keys.get(i);
            Object value = paraMap.get(key);
       if (i == keys.size() - 1) {//拼接時,不包括最后一個&字符
        prestr = prestr + key + "=" + value;
       }else {
        prestr = prestr + key + "=" + value + "&";}
} 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM