java 解析路径中的参数(与=拼接的参数)

百度找了好久,索性自己搞一个

废话不多说直接上代码

public class UrlParamAnalysis {/*** 解析出url请求的路径,包括页面* * @param strURL url地址* @return url路径*/public static String UrlPage(String strURL) {String strPage = null;String[] arrSplit = null;strURL = strURL.trim().toLowerCase();arrSplit = strURL.split("[?]");if (strURL.length() > 0) {if (arrSplit.length > 1) {if (arrSplit[0] != null) {strPage = arrSplit[0];}}}return strPage;}/*** 去掉url中的路径,留下请求参数部分* * @param strURL url地址* @return url请求参数部分*/private static String TruncateUrlPage(String strURL) {String strAllParam = null;String[] arrSplit = null;arrSplit = strURL.split("[?]");if (strURL.length() > 1) {if (arrSplit.length > 1) {if (arrSplit[1] != null) {strAllParam = arrSplit[1];}}}return strAllParam;}public static Map<String, String> uRLRequest2(String URL) {Map<String, String> mapRequest = new HashMap<String, String>();String[] arrSplit = null;String strUrlParam = TruncateUrlPage(URL);if (strUrlParam == null) {return mapRequest;}// 每个键值为一组arrSplit = strUrlParam.split("[&]");for (String strSplit : arrSplit) {String[] arrSplitEqual = null;arrSplitEqual = strSplit.split("[=]", 2);// 解析出键值if (arrSplitEqual.length > 1) {// 正确解析mapRequest.put(arrSplitEqual[0], arrSplitEqual[1]);} else {if (arrSplitEqual[0] != "") {// 只有参数没有值,不加入mapRequest.put(arrSplitEqual[0], "");}}}return mapRequest;}
}
public class UrlParamAnalysisTest {public static void main(String[] args) {String url = "http://www.baidu.com?aa=q1222===&bb=pojwqde=&cc=vseefa=a=a";Map<String, String> stringStringMap = UrlParamAnalysis.uRLRequest2(url);System.out.println(JSON.toJSONString(stringStringMap));// 如果需要解析想直接用的话,前面必须有? ,或者自己改造下方法String baseUrl = "?data=vz9I/ZVKD+2h1lVBEXEeWCOCeSAmg2QhuRh5eChw==&partnerId=HSYC001&salt=/+9hPX5QSRl++Z2n9X5p7e==&sign=c/==&timestamp=1685072690578";Map<String, String> stringStringMap2 = UrlParamAnalysis.uRLRequest2(baseUrl);System.out.println(JSON.toJSONString(stringStringMap2));}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/661339.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

科普类—— 大疆无人机(DJI)在解决图像传输延时问题策略(四)

大疆无人机&#xff08;DJI&#xff09;在解决图像传输延时问题方面采取了一系列技术和设计策略&#xff0c;以确保飞行过程中的实时图像传输和控制。以下是大疆无人机处理图像延时问题的一些关键方法&#xff1a; 专用通信协议&#xff1a;大疆无人机使用其自家开发的Lightbri…

介绍一个超好用的API管理工具:Apipost

Apipost是一款集API调试、生成文档、Mock、测试于一体的协同工具。单个工具可以同时满足接口测试、生成/分享文档、Mock、流程测试等功能&#xff0c;还有超实用的多人多角色间实时协作的功能。将前端、后端、测试三种角色串联起来&#xff0c;从而实现工作流程无缝衔接、提高研…

yolo系列多卡训练命令

yolo系列多卡训练 多卡训练命令示例 python train.py --batch 64 --data coco.yaml --weights yolov5s.pt --device 0,1参数 –batch&#xff1a;指定GPU一次处理的样本数量&#xff0c;即批量–data&#xff1a;指定描述训练和验证数据集位置&#xff0c;以及标签类别的配…

【Qt】—— 项⽬⽂件解析

目录 &#xff08;一&#xff09;.pro⽂件解析 &#xff08;二&#xff09;widget.h⽂件解析 &#xff08;三&#xff09;main.cpp⽂件解析 &#xff08;四&#xff09;widget.cpp⽂件解析 &#xff08;五&#xff09;widget.ui⽂件解析 &#xff08;一&#xff09;.pro⽂…

P1083 [NOIP2012 提高组] 借教室

P1083 [NOIP2012 提高组] 借教室 题目描述 在大学期间&#xff0c;经常需要租借教室。大到院系举办活动&#xff0c;小到学习小组自习讨论&#xff0c;都需要向学校申请借教室。教室的大小功能不同&#xff0c;借教室人的身份不同&#xff0c;借教室的手续也不一样。 面对海…

如何检验 MySQL 数据库中查询语句是否已经是最优,并进行优化

在MySQL数据库中&#xff0c;优化查询语句是提高数据库性能的关键。在这篇博客中&#xff0c;我们将详细介绍如何检验MySQL数据库中查询语句是否已经是最优的&#xff0c;并阐述如何进行优化查询以提高其效率。我们将涵盖以下几个方面的内容&#xff1a; 1、编写测试查询的脚本…

每周AI新闻(2024年第4周)OpenAI GPT降价增效,ChatGPT支持对话@GPTs | 通义千问Qwen-VL升级 | 哄哄模拟器爆火

我是陌小北&#xff0c;一个正在研究硅基生命的、有趣儿的碳基生命。每周日20:00&#xff0c;准时解读每周AI大事件。 本文解读部分属于陌小北的梦话&#xff0c;言论与她本人以及她所在的“陌北有棵树”账号无关。 大厂动向 【1】OpenAI GPT-3.5 Turbo降价增效、GPT-4 Turbo…

同态加密库Openfhe的介绍与安装

同态加密的基本概念 所谓的加密&#xff0c;其实是明文空间到密文空间的映射关系。明文空间里面的元素&#xff0c;叫做明文&#xff0c;是我们想要保护的信息&#xff0c;通常会含有一些特殊的信息。常见的明文有图像&#xff0c;视频、个人资料等等。明文空间里面的元素&…

net 一台路由器如何让两个不同网段的终端可以通信。

# 终端设备自己设置就行了 # 路由器的设置 The device is running! #################################################### <Huawei> Feb 1 2024 21:21:09-08:00 Huawei %%01IFPDT/4/IF_STATE(l)[0]:Interface GigabitEt hernet0/0/0 has turned into UP state. <…

C++层uevent获取

本文用的是#include <cutils/uevent.h> 主要讲述android中怎么在C层接收uevent uevent 是 kernel层向用户层发送的一个事件 首先创建一个线程用于循环去获取uevent void testUevent {//创建一个线程一直循环pthread_t thread;int ret pthread_create(&thread, nu…

Win11系统连接带HDMI接口的显示器后,电脑没有声音如何调试

解决这个问题的方法很简单&#xff0c;没有那么复杂。之所以使用HDMI接口连接了显示器后没声音&#xff0c;原因就是HDMI接口是包含音频视频两种信号的接口。当电脑的HDMI接口被使用时&#xff0c;系统就会默认从HDMI设备输出声音信号了&#xff0c;而此时如果HDMI设备没有声音…

取巧方式el-select单选重复选择

前言&#xff1a;之前产品是可以多选&#xff0c;我就一想在el-select 加个multiple不就完事了吗&#xff1f;我兴高采烈几分钟就实现了这个选择框&#xff0c;可是后面说单选也要重复多选几个&#xff0c;顿时我就****,又不想自己写个 首先安装element-plus 一定要安装2.5版本…

什么是模板方法模式?它的实现方式有哪些?

什么是模板方法模式&#xff1f;它的实现方式有哪些&#xff1f; 模板方法模式是一种行为型模式&#xff0c;它定义了一个操作中的算法骨架&#xff0c;而将算法的一些步骤延迟到子类中实现&#xff0c;使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。 模…

OSPF排错

目录 实验拓扑图 实验要求 实验排错 故障一 故障现象 故障分析 故障解决 故障二 故障现象 故障分析 故障解决 故障三 故障现象 故障分析 故障解决 故障四 故障现象 故障分析 故障解决 故障五 故障现象 故障分析 故障解决 故障六 故障现象 故障分析 …

wespeaker项目grpc-java客户端开发

非常重要的原始参考资料&#xff1a; 链接: triton-inference-server/client github/grpc java ps&#xff1a; 使用grpc协议的其它项目python/go可以参考git hub目录client/tree/main/src/grpc_generated下的其它项目 其它链接&#xff1a; 想要系统了解triton-inference-ser…

【linux】运维-磁盘空间不足-用到的命令(简洁)

【linux】运维-磁盘空间不足-用到的命令 常用&#xff1a; 注&#xff1a;du -s 和 -d 不能同时都用, -s | -d n 注&#xff1a;df -H 和 -h 区别 -H 1K1000 -h 1K1024 #-T 显示文件系统类型 -h 高可读性显示 df -Th #-c显示总和 ;sort -r 倒序显示 ;2>/dev/nul…

小白初探|神经网络与深度学习

一、学习背景 由于工作的原因&#xff0c;需要开展人工智能相关的研究&#xff0c;虽然不用参与实际研发&#xff0c;但在项目实施过程中发现&#xff0c;人工智能的项目和普通程序开发项目不一样&#xff0c;门槛比较高&#xff0c;没有相关基础没法搞清楚人力、财力如何投入&…

Mask-Free Video Instance Segmentation

论文地址&#xff1a;[2303.15904] 无掩码视频实例分割 (arxiv.org) 论文代码&#xff1a;https://github.com/SysCV/MaskFreeVis 目录 一、摘要 二、介绍 三、方法 3.1 时间掩码一致性 3.2 时间KNN-patch Loss 3.3 训练MaskFreeVIS 四. 数据集 五.消融实验 六. 结果 七…

Shell - 学习笔记 - 2.6 - Shell $*和$@之间的区别

$* 和 $ 都表示传递给函数或脚本的所有参数&#xff0c;我们已在《Shell特殊变量》一节中进行了演示&#xff0c;本节重点说一下它们之间的区别。 当 $* 和 $ 不被双引号" "包围时&#xff0c;它们之间没有任何区别&#xff0c;都是将接收到的每个参数看做一份数据&a…

深度解读NVMe计算存储协议-1

随着云计算、企业级应用以及物联网领域的飞速发展&#xff0c;当前的数据处理需求正以前所未有的规模增长&#xff0c;以满足存储行业不断变化的需求。这种增长导致网络带宽压力增大&#xff0c;并对主机计算资源&#xff08;如内存和CPU&#xff09;造成极大负担&#xff0c;进…