javaはmapをurlパラメータに変えてつなぎ合わせます。

8111 ワード

仕事中、私たちはよく1つのjava mapurlパラメータ文字列に変換します。ここでは2つの方法を示します。結果が自然な順序付けが必要な場合は、TreeMapを介して実施することができます。
方法1、第三者のツールバッグを使わない:
/**
 *               ,       UnsupportedEncodingException
 */
public static String asUrlParams(Map<String, String> source){
    Iterator<String> it = source.keySet().iterator();
    StringBuilder paramStr = new StringBuilder();
    while (it.hasNext()){
        String key = it.next();
        String value = source.get(key);
        if (StringUtils.isBlank(value)){
            continue;
        }
        try {
        	// URL   
            value = URLEncoder.encode(value, "utf-8");
        } catch (UnsupportedEncodingException e) {
            // do nothing
        }
        paramStr.append("&").append(key).append("=").append(value);
    }
    //      &
    return paramStr.substring(1);
}
方法2は、guavaによって包装された工具類:
mavneはgavaを導入します
<dependency>
  <groupId>com.google.guavagroupId>
  <artifactId>guavaartifactId>
  <version>28.1-jreversion>
dependency>
public static String asUrlParams(Map<String, String> source){
	// TODO                
    return Joiner.on("&")
            //          ,key   value  null     
            .useForNull("")
            .withKeyValueSeparator("=")
            .join(source);
}
Joiner対応のSplitterがもう一つあります。urlをmapにカットできます。興味があるなら、調べてください。助けたら、右上をクリックしてください。
私の個人ブログの住所:ここをクリックしてください。