UrlUtils工具类,Java URL工具类,Java URL链接工具类
UrlUtils工具类,Java URL工具类,Java URL链接工具类
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
©Copyright 蕃薯耀 2017年7月15日
http://www.cnblogs.com/fanshuyao/
- 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/
UrlUtils工具类,Java URL工具类,Java URL链接工具类的更多相关文章
- JAVA调用操作javascript (JS)工具类
import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import ...
- java中模拟http(https)请求的工具类
在java中,特别是java web中,我们经常需要碰到的一个场景是我们需要从服务端去发送http请求,获取到数据,而不是直接从浏览器输入请求网址获得相应.比如我们想访问微信接口,获取其返回信息. 在 ...
- Java操作zip压缩和解压缩文件工具类
需要用到ant.jar(这里使用的是ant-1.6.5.jar) import java.io.File; import java.io.FileInputStream; import java.io ...
- Java基础知识强化92:日期工具类的编写和测试案例
1. DateUtil.java,代码如下: package cn.itcast_04; import java.text.ParseException; import java.text.Simpl ...
- java调用kettle的job和transfer工具类
package com.woaiyitiaocai.util; import java.util.Map; import java.util.UUID; import org.apache.log4j ...
- 【转】java缩放图片、java裁剪图片代码工具类
一首先看下效果 二工具类 三测试类 在系统的上传图片功能中,我们无法控制用户上传图片的大小,用户可能会上传大到几十M小到1k的的图片,一方面图片太大占据了太多的空间,另一方面,我们没办法在页面上显示统 ...
- java 记录对象前后修改的内容(工具类)
有时候业务需要,需记录一条记录的修改历史,但是不能为完成任务而硬编码,不靠谱 这种情况可以使用java反射来完成 对对象属性的描述可以通过自定义注解来完成,读取里面的属性进而记录修改历史. 在对象的属 ...
- 【java工具类】java做的一个xml转Excel工具,基于maven工程
说明:适合数据库导出为xml时转成Excel 本工具将上传至GitHub:https://github.com/xiaostudy/xiaostudyAPI3 doc4j的maven依赖 <!- ...
- Java从零开始学二十四(集合工具类Collections)
一.Collections简介 在集合的应用开发中,集合的若干接口和若干个子类是最最常使用的,但是在JDK中提供了一种集合操作的工具类 —— Collections,可以直接通过此类方便的操作集合 二 ...
随机推荐
- PCL点云曲面重建(1)
在测量较小的数据时会产生一些误差,这些误差所造成的不规则数据如果直接拿来曲面重建的话,会使得重建的曲面不光滑或者有漏洞,可以采用对数据重采样来解决这样问题,通过对周围的数据点进行高阶多项式插值来重建表 ...
- 微信小程序——文本的展开与收起
动态效果如下: 就是默认只显示4行,点击展开的按钮显示全部,再点击隐藏. 主要通过css来控制 主要的css: .flex-text{ margin-top: 10px; display: -webk ...
- 卡片式ViewPager,一屏展示多个pager item,设置高度不一致的tabBar
ViewPager的基本用法不必多说,这都很简单,我们可以在ViewPager中加载一个ImageView,也可以加载一个Fragment,这都是目前非常常见的用法.那么我今天说的是ViewPager ...
- 关于Unity中旧版动画系统的使用
Unity在5.X以后,有一个旧版的动画系统和新版的动画系统. 新版的动画系统是使用Unity动画编辑器来调的,调动画和控制动画 旧版的动画系统是用其他的第三方软件调好后导出到一个FBX文件里面,就是 ...
- 如何安装Node.js环境
一.在Windows系统下安装Node.js环境 1. 下载地址:官网http://nodejs.org/ 2. 安装nodejs,根据自己情况,安装路径 D:\Program Files\nod ...
- SAP DBDI 网银接口实现案例
在财务共享中心SSC实施中,为了提高AP和对账的效率,不可避免的需要实现和网上银行的集成.笔者为各位分析该案例如下: 为什么要上网银? 2).和SAP的无缝集成 3).直接在SAP中和银联对接 4). ...
- 【转】【Centos】nginx配置:location配置方法及实例详解
location匹配的是nginx的哪个变量? $request_uri location的匹配种类有哪些? 格式 location [ 空格 | = | ~ | ~* |^~ | !~ | !~* ...
- Linux中的环境变量PATH
一.介绍 在讲环境变量之前,先介绍一下命令which,它用于查找某个命令的绝对路径,示例如下: 在上面的示例中,用which查到rm命令的绝对路径为/usr/bin/rm. 那么问题来了:为什么我们使 ...
- windows sever2003安装Wamp 2.5不成功——VC 11不支持Windows Server 2003和win XP?
Windows Server 2003 安装Wamp 2.5不成功Wampserver 2.5 will not run on Windows XP 报错信息:C:\wamp\bin\apache\a ...
- (转)simple-framework(MaliSDK框架分析)
出自:http://blog.csdn.net/u013467442/article/details/46940501 simple-framework(Mali SDK框架分析) 1.所有的定义及 ...