java快速解析路徑中的參數(shù)(&與=拼接的參數(shù))
java 解析路徑中的參數(shù)(&與=拼接的參數(shù))
百度找了好久,索性自己搞一個(gè)
廢話不多說(shuō)直接上代碼
public class UrlParamAnalysis {
/**
* 解析出url請(qǐng)求的路徑,包括頁(yè)面
*
* @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中的路徑,留下請(qǐng)求參數(shù)部分
*
* @param strURL url地址
* @return url請(qǐng)求參數(shù)部分
*/
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;
}
// 每個(gè)鍵值為一組
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] != "") {
// 只有參數(shù)沒(méi)有值,不加入
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/==×tamp=1685072690578";
Map<String, String> stringStringMap2 = UrlParamAnalysis.uRLRequest2(baseUrl);
System.out.println(JSON.toJSONString(stringStringMap2));
}
}到此這篇關(guān)于java 解析路徑中的參數(shù)(&與=拼接的參數(shù))的文章就介紹到這了,更多相關(guān)java 解析路徑參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring通過(guò)c3p0配置bean連接數(shù)據(jù)庫(kù)
這篇文章主要為大家詳細(xì)介紹了Spring通過(guò)c3p0配置bean連接數(shù)據(jù)庫(kù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08
Java中的Monad設(shè)計(jì)模式及其實(shí)現(xiàn)過(guò)程
本文介紹了Java中的Monad設(shè)計(jì)模式及其在函數(shù)式編程中的應(yīng)用,雖然Java不是函數(shù)式編程語(yǔ)言,但可以通過(guò)接口和泛型模擬Monad的行為,實(shí)現(xiàn)鏈?zhǔn)秸{(diào)用和上下文管理,通過(guò)一個(gè)示例展示了如何使用OptionalMonad進(jìn)行鏈?zhǔn)秸{(diào)用,并解析了Monad接口和OptionalMonad的實(shí)現(xiàn)細(xì)節(jié)2025-03-03
MybatisPlus實(shí)現(xiàn)邏輯刪除的示例代碼
本文主要介紹了Mybatis?Plus實(shí)現(xiàn)邏輯刪除的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05
使用HttpServletResponse對(duì)象獲取請(qǐng)求行信息
這篇文章主要介紹了使用HttpServletResponse對(duì)象獲取請(qǐng)求行信息,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
實(shí)戰(zhàn)分布式醫(yī)療掛號(hào)系統(tǒng)開發(fā)醫(yī)院科室及排班的接口
這篇文章主要為大家介紹了實(shí)戰(zhàn)分布式醫(yī)療掛號(hào)系統(tǒng)開發(fā)醫(yī)院科室及排班的接口,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>2022-04-04

