UrlUtils工具类,Java URL工具类,Java URL链接工具类
2023-09-11 14:18:15 时间
UrlUtils工具类,Java URL工具类,Java URL链接工具类
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
©Copyright 蕃薯耀 2017年7月15日
http://www.cnblogs.com/fanshuyao/
新版本见:https://www.cnblogs.com/fanshuyao/p/14314095.html
- import java.util.HashMap;
- import java.util.Map;
- import java.util.Set;
- public class UrlUtils {
- /**
- * 向url链接追加参数
- * @param url
- * @param params Map<String, String>
- * @return
- */
- public static String appendParams(String url, Map<String, String> params){
- if(StrUtils.isBlank(url)){
- return "";
- }else if(StrUtils.isEmptyMap(params)){
- return url.trim();
- }else{
- StringBuffer sb = new StringBuffer("");
- Set<String> keys = params.keySet();
- for (String key : keys) {
- sb.append(key).append("=").append(params.get(key)).append("&");
- }
- sb.deleteCharAt(sb.length() - 1);
- url = url.trim();
- int length = url.length();
- int index = url.indexOf("?");
- if(index > -1){//url说明有问号
- if((length - 1) == index){//url最后一个符号为?,如:http://wwww.baidu.com?
- url += sb.toString();
- }else{//情况为:http://wwww.baidu.com?aa=11
- url += "&" + sb.toString();
- }
- }else{//url后面没有问号,如:http://wwww.baidu.com
- url += "?" + sb.toString();
- }
- return url;
- }
- }
- /**
- * 向url链接追加参数(单个)
- * @param url
- * @param name String
- * @param value String
- * @return
- */
- public static String appendParam(String url, String name, String value){
- if(StrUtils.isBlank(url)){
- return "";
- }else if(StrUtils.isBlank(name)){
- return url.trim();
- }else{
- Map<String, String> params = new HashMap<String, String>();
- params.put(name, value);
- return appendParams(url, params);
- }
- }
- /**
- * 移除url链接的多个参数
- * @param url String
- * @param paramNames String[]
- * @return
- */
- public static String removeParams(String url, String... paramNames){
- if(StrUtils.isBlank(url)){
- return "";
- }else if(StrUtils.isEmptyArray(paramNames)){
- return url.trim();
- }else{
- url = url.trim();
- int length = url.length();
- int index = url.indexOf("?");
- if(index > -1){//url说明有问号
- if((length - 1) == index){//url最后一个符号为?,如:http://wwww.baidu.com?
- return url;
- }else{//情况为:http://wwww.baidu.com?aa=11或http://wwww.baidu.com?aa=或http://wwww.baidu.com?aa
- String baseUrl = url.substring(0, index);
- String paramsString = url.substring(index + 1);
- String[] params = paramsString.split("&");
- if(!StrUtils.isEmptyArray(params)){
- Map<String, String> paramsMap = new HashMap<String, String>();
- for (String param : params) {
- if(!StrUtils.isBlank(param)){
- String[] oneParam = param.split("=");
- String paramName = oneParam[0];
- int count = 0;
- for(int i=0; i<paramNames.length; i++){
- if(paramNames[i].equals(paramName)){
- break;
- }
- count ++;
- }
- if(count == paramNames.length){
- paramsMap.put(paramName, (oneParam.length > 1)?oneParam[1]:"");
- }
- }
- }
- if(!StrUtils.isEmptyMap(paramsMap)){
- StringBuffer paramBuffer = new StringBuffer(baseUrl);
- paramBuffer.append("?");
- Set<String> set = paramsMap.keySet();
- for (String paramName : set) {
- paramBuffer.append(paramName).append("=").append(paramsMap.get(paramName)).append("&");
- }
- paramBuffer.deleteCharAt(paramBuffer.length() - 1);
- return paramBuffer.toString();
- }
- return baseUrl;
- }
- }
- }
- return url;
- }
- }
- public static void main(String[] args) {
- /*String a = "http://wwww.baidu.com";
- String b = "http://wwww.baidu.com?";
- String c = "http://wwww.baidu.com?aa=11";
- System.out.println("a="+appendParam(a, "bb", "1"));
- System.out.println("b="+appendParam(b, "bb", "1"));
- System.out.println("c="+appendParam(c, "bb", "1"));*/
- String d = "http://wwww.baidu.com?aa";
- String e = "http://wwww.baidu.com?aa=11&bb=22&cc=33";
- String f = "http://wwww.baidu.com?aa=11&bb=22&cc=33&dd=";
- String g = "http://wwww.baidu.com?aa=11&bb=22&cc=33&dd";
- /*List<String> params = new ArrayList<String>();
- params.add("aa");
- System.out.println("d="+removeParams(d, params));
- params.add("bb");
- System.out.println("e="+removeParams(e, params));
- params.add("cc");
- System.out.println("f="+removeParams(f, params));
- params.add("dd");
- System.out.println("g="+removeParams(g, params));*/
- System.out.println("g="+removeParams(g, "cc","aa"));
- }
- }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
©Copyright 蕃薯耀 2017年7月15日
http://www.cnblogs.com/fanshuyao/
相关文章
- Java学习之java高级特性
- java并发中CountDownLatch的使用
- 大杂烩 -- Java内存布局【图】以及java各种存储区【详解】
- 【HarmonyOS】基于JS UI的Java服务卡片如何实现动态定时刷新
- Java Opencv 实现锐化
- 深入掌握Java中的enum
- Java IDEA中设置导入import java.xx.*和设置导入具体的import java.xx.yy;
- java高级用法之:在JNA中将本地方法映射到JAVA代码中
- Java 设计模式:代理、适配器、桥接、装饰、外观、享元、组合模式
- Java魔法堂:内部类详解
- 《青花瓷》JAVA版:周杰伦告诉你怎么学Java
- J2EE总结:Java命名与目录接口JNDI
- 什么是Java序列化,如何实现java序列化
- 【JAVA】浅谈java枚举类
- 'Sort(org.springframework.data.domain.Sort.Direction, java.util.List<java.lang.String>)' has private access in 'org.springframework.data.domain.Sort'
- ajax的跨域解决方案(java+ajax)
- Java多线程-线程的优先级(priority)以及守护线程(daemon)