UrlUtil.java

package com.bigbigbu.util.http;import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;import org.apache.commons.lang3.StringUtils;/**
* @Title: UrlUtil
* @Description: URL(编码、解码、参数解析)
* @Company: 卜凡起的博客
* @author    FANQIBU
* @date       2018年2月1日
*/
public class UrlUtil {private final static String ENCODE = "GBK"; /*** URL 解码** @return String* @author lifq* @date 2015-3-17 下午04:09:51*/public static String getURLDecoderString(String str) {String result = "";if (null == str) {return "";}try {result = java.net.URLDecoder.decode(str, ENCODE);} catch (UnsupportedEncodingException e) {e.printStackTrace();}return result;}/*** URL 转码** @return String* @author lifq* @date 2015-3-17 下午04:10:28*/public static String getURLEncoderString(String str) {String result = "";if (null == str) {return "";}try {result = java.net.URLEncoder.encode(str, ENCODE);} catch (UnsupportedEncodingException e) {e.printStackTrace();}return result;}/**  * 正则替换  * @param url  * @param name  * @param value  * @return  */  public static String replaceUrlParameterReg(String url, String name, String value) {  if (StringUtils.isNotBlank(url) && StringUtils.isNotBlank(value)) {  url = url.replaceAll("(" + name + "=[^&]*)", name + "=" + value);  }  return url;  }  /**  * 正则替换  * @param url  * @param name  * @param value  * @return  */  public static String getUrlParameterReg(String url, String name) {Map<String, String> mapRequest = new HashMap<String, String>();String[] arrSplit=null;String strUrlParam=TruncateUrlPage(url);if(strUrlParam==null){return "";}//每个键值为一组 www.2cto.comarrSplit=strUrlParam.split("[&]");for(String strSplit:arrSplit){String[] arrSplitEqual=null;         arrSplitEqual= strSplit.split("[=]");//解析出键值if(arrSplitEqual.length>1){//正确解析mapRequest.put(arrSplitEqual[0], arrSplitEqual[1]);}else{if(arrSplitEqual[0]!=""){//只有参数没有值,不加入mapRequest.put(arrSplitEqual[0], "");       }}}   return mapRequest.get(name);  }  /*** 去掉url中的路径,留下请求参数部分* @param strURL url地址* @return url请求参数部分*/private static String TruncateUrlPage(String strURL){String strAllParam=null;String[] arrSplit=null;strURL=strURL.trim().toLowerCase();arrSplit=strURL.split("[?]");if(strURL.length()>1){if(arrSplit.length>1){if(arrSplit[1]!=null){strAllParam=arrSplit[1];}}}return strAllParam;   }public static void main(String[] args) {String str ="/activePage?wxto=0C29975119DE037B4F25CD119CF4CF11&activity2018topid=oz9Zj07Jg5O9IfAyVauT-GL-CSfM&activity2018topunid=o-NUA0l8fxm2_5fmK_ocpyxrP1dE&subscribe=0&timestamp=1516008942920&-NUA0l8fxm2_5fmK_ocpyxrP1dE&oaccesstoken=5_xJYY3gnUTD4pqJFc7_ltbvclb0ZRKOFBEc5BXAwi7vjZndRAN58AkPazqUJDGzBbrw-J1ag1PF0C-S39SqJflA&m=1&wxt=C9A58DA3804E46981BF4B78C8C862743&-NUA0oHjJjCcyGe-wJdEFYjwrfU&-NUA0oHjJjCcyGe-wJdEFYjwrfU&-NUA0oHjJjCcyGe-wJdEFYjwrfU";System.out.println( getUrlParameterReg(str,"wxto"));}
}

JAVA工具类之URL(编码、解码、参数解析)相关推荐

  1. Java工具类-转换字符编码

    package common; /***字符串处理公用类 */ public class DealString {/*** 转换字符编码 由"iso-8859-1"西文转换为简体中 ...

  2. URL编码解码工具类

    /****************************************************************************** * CREATETIME : 2016年 ...

  3. java url加密解密,java URL 编码解码,该如何解决

    java URL 编码解码 我写了两个接口 一个是对字符串加密 的,一个是解密的  .加密的可以通过调用接口生成加密字符串如下: Oc0PEwKrLzHqT25hYLhWP5wlk5HROPJoWC3 ...

  4. (6)常用的Java工具类

    目录 前言: 第一部分:常用的16个工具类 一.org.apache.commons.io.IOUtils 二.org.apache.commons.io.FileUtils 三.org.apache ...

  5. 干货:排名前 16 的 Java 工具类!

    2019独角兽企业重金招聘Python工程师标准>>> 干货:排名前 16 的 Java 工具类!   在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最 ...

  6. 排名前 16 的 Java 工具类

    转载来自微信公众号:Java 技术栈.如有侵权,请联系作者删除!! 在 Java 中,工具类定义了一组公共方法,这篇文章将介绍 Java 中使用最频繁及最通用的 Java 工具类.以下工具类.方法按使 ...

  7. beanutils工具类_16 个超级实用的 Java 工具类!

    在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码. 一. ...

  8. java轻量级并行工具类_16 个超级实用的 Java 工具类

    原标题:16 个超级实用的 Java 工具类 源 /juejin 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名, ...

  9. java 文本工具类_干货:排名前16的Java工具类

    原标题:干货:排名前16的Java工具类 作者丨Java技术栈 https://www.jianshu.com/p/9e937d178203 在Java中,工具类定义了一组公共方法,这篇文章将介绍Ja ...

  10. 干货:排名前16的Java工具类

    image 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源 ...

最新文章

  1. python输入一组数据、进行简单的统计_《利用Python进行数据分析》学习笔记——第二章(3)...
  2. dt决策树_决策树:构建DT的分步方法
  3. 使用 store 来优化 React 组件
  4. 从文件夹内批量获取所有文件名 批处理脚本
  5. mysql获取option的value_js获取下拉列表框option中的value和text的值示例代码
  6. 为什么那么多公司不用 .NET,而选择PHP、JSP,是 .NET有什么缺点吗?
  7. zabbix 客户端自定义端口监控
  8. Nginx 基于nginx-sticky-module模块进行会话保持
  9. VScode+远程服务器docker+C/C++ 代码挑战配置
  10. 【渝粤教育】国家开放大学2018年秋季 0676-22T物流成本管理 参考试题
  11. win10企业版激活简便方法
  12. 雨听|Vs Code中使用markdown语法实现mac风格的代码块
  13. Proxmark3系列教程1——PM3用法
  14. python pySerial模块介绍
  15. ipv6无网络访问权限可行解决方案
  16. 软件测试流程图Bug管理流程图
  17. C语言程序——摄氏度和华氏度之间的转换
  18. Anaconda常用命令小结
  19. Verilog 实现占空比为50%的三分频 断言SVA查看波形
  20. Oracle基本语法及例子

热门文章

  1. java冒泡排序(含冒泡排序代码)
  2. oracle exadata中国保有量,怎样购买Exadata?
  3. office计算机高级应用,全国高等学校计算机水平考试Ⅱ级《Office2010高级应用》考试大纲(试行)...
  4. 在线搜索全网音乐支持歌曲外链下载等源码[免费开源]
  5. Jmeter之接口测试流程详解
  6. 图像处理-Sobel边缘检测(C++实现,不依赖opencv)
  7. 物联网技术概论:第2章
  8. SSM框架整合详细过程
  9. prince2证书有含金量吗?
  10. mysql超市进存销管理系统_企业进存销管理系统.doc