UrlUtils工具类,Java URL工具类,Java URL链接工具类

UrlUtils工具类,Java URL工具类,Java URL链接工具类

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

©Copyright 蕃薯耀 2017年7月15日

http://www.cnblogs.com/fanshuyao/

Java代码  收藏代码
  1. import java.util.HashMap;  
  2. import java.util.Map;  
  3. import java.util.Set;  
  4.   
  5. public class UrlUtils {  
  6.   
  7.     /** 
  8.      * 向url链接追加参数 
  9.      * @param url 
  10.      * @param params Map<String, String> 
  11.      * @return 
  12.      */  
  13.     public static String appendParams(String url, Map<String, String> params){  
  14.         if(StrUtils.isBlank(url)){  
  15.             return "";  
  16.         }else if(StrUtils.isEmptyMap(params)){  
  17.             return url.trim();  
  18.         }else{  
  19.             StringBuffer sb = new StringBuffer("");  
  20.             Set<String> keys = params.keySet();  
  21.             for (String key : keys) {  
  22.                 sb.append(key).append("=").append(params.get(key)).append("&");  
  23.             }  
  24.             sb.deleteCharAt(sb.length() - 1);  
  25.               
  26.             url = url.trim();  
  27.             int length = url.length();  
  28.             int index = url.indexOf("?");  
  29.             if(index > -1){//url说明有问号  
  30.                 if((length - 1) == index){//url最后一个符号为?,如:http://wwww.baidu.com?  
  31.                     url += sb.toString();  
  32.                 }else{//情况为:http://wwww.baidu.com?aa=11  
  33.                     url += "&" + sb.toString();  
  34.                 }  
  35.             }else{//url后面没有问号,如:http://wwww.baidu.com  
  36.                 url += "?" + sb.toString();  
  37.             }  
  38.             return url;  
  39.         }  
  40.     }  
  41.       
  42.     /** 
  43.      * 向url链接追加参数(单个) 
  44.      * @param url 
  45.      * @param name String 
  46.      * @param value String 
  47.      * @return 
  48.      */  
  49.     public static String appendParam(String url, String name, String value){  
  50.         if(StrUtils.isBlank(url)){  
  51.             return "";  
  52.         }else if(StrUtils.isBlank(name)){  
  53.             return url.trim();  
  54.         }else{  
  55.             Map<String, String> params = new HashMap<String, String>();  
  56.             params.put(name, value);  
  57.             return appendParams(url, params);  
  58.         }  
  59.     }  
  60.       
  61.     /** 
  62.      * 移除url链接的多个参数 
  63.      * @param url String 
  64.      * @param paramNames String[] 
  65.      * @return 
  66.      */  
  67.     public static String removeParams(String url, String... paramNames){  
  68.         if(StrUtils.isBlank(url)){  
  69.             return "";  
  70.         }else if(StrUtils.isEmptyArray(paramNames)){  
  71.             return url.trim();  
  72.         }else{  
  73.             url = url.trim();  
  74.             int length = url.length();  
  75.             int index = url.indexOf("?");  
  76.             if(index > -1){//url说明有问号  
  77.                 if((length - 1) == index){//url最后一个符号为?,如:http://wwww.baidu.com?  
  78.                     return url;  
  79.                 }else{//情况为:http://wwww.baidu.com?aa=11或http://wwww.baidu.com?aa=或http://wwww.baidu.com?aa  
  80.                     String baseUrl = url.substring(0, index);  
  81.                     String paramsString = url.substring(index + 1);  
  82.                     String[] params = paramsString.split("&");  
  83.                     if(!StrUtils.isEmptyArray(params)){  
  84.                         Map<String, String> paramsMap = new HashMap<String, String>();  
  85.                         for (String param : params) {  
  86.                             if(!StrUtils.isBlank(param)){  
  87.                                 String[] oneParam = param.split("=");  
  88.                                 String paramName = oneParam[0];  
  89.                                 int count = 0;  
  90.                                 for(int i=0; i<paramNames.length; i++){  
  91.                                     if(paramNames[i].equals(paramName)){  
  92.                                         break;  
  93.                                     }  
  94.                                     count ++;  
  95.                                 }  
  96.                                 if(count == paramNames.length){  
  97.                                     paramsMap.put(paramName, (oneParam.length > 1)?oneParam[1]:"");  
  98.                                 }  
  99.                             }  
  100.                         }  
  101.                         if(!StrUtils.isEmptyMap(paramsMap)){  
  102.                             StringBuffer paramBuffer = new StringBuffer(baseUrl);  
  103.                             paramBuffer.append("?");  
  104.                             Set<String> set = paramsMap.keySet();  
  105.                             for (String paramName : set) {  
  106.                                 paramBuffer.append(paramName).append("=").append(paramsMap.get(paramName)).append("&");  
  107.                             }  
  108.                             paramBuffer.deleteCharAt(paramBuffer.length() - 1);  
  109.                             return paramBuffer.toString();  
  110.                         }  
  111.                         return baseUrl;  
  112.                     }  
  113.                 }  
  114.             }  
  115.             return url;  
  116.         }  
  117.     }  
  118.       
  119.     public static void main(String[] args) {  
  120.         /*String a = "http://wwww.baidu.com"; 
  121.         String b = "http://wwww.baidu.com?"; 
  122.         String c = "http://wwww.baidu.com?aa=11"; 
  123.         System.out.println("a="+appendParam(a, "bb", "1")); 
  124.         System.out.println("b="+appendParam(b, "bb", "1")); 
  125.         System.out.println("c="+appendParam(c, "bb", "1"));*/  
  126.           
  127.         String d = "http://wwww.baidu.com?aa";  
  128.         String e = "http://wwww.baidu.com?aa=11&bb=22&cc=33";  
  129.         String f = "http://wwww.baidu.com?aa=11&bb=22&cc=33&dd=";  
  130.         String g = "http://wwww.baidu.com?aa=11&bb=22&cc=33&dd";  
  131.         /*List<String> params = new ArrayList<String>(); 
  132.         params.add("aa"); 
  133.         System.out.println("d="+removeParams(d, params)); 
  134.         params.add("bb"); 
  135.         System.out.println("e="+removeParams(e, params)); 
  136.         params.add("cc"); 
  137.         System.out.println("f="+removeParams(f, params)); 
  138.         params.add("dd"); 
  139.         System.out.println("g="+removeParams(g, params));*/  
  140.         System.out.println("g="+removeParams(g, "cc","aa"));  
  141.     }  
  142. }  

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

©Copyright 蕃薯耀 2017年7月15日

http://www.cnblogs.com/fanshuyao/

原文地址:https://www.cnblogs.com/fanshuyao/p/7181835.html