java快速解析路徑中的參數(shù)(&與=拼接的參數(shù))
java 解析路徑中的參數(shù)(&與=拼接的參數(shù))
百度找了好久,索性自己搞一個(gè)
廢話不多說直接上代碼
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中的路徑,留下請求參數(shù)部分 * * @param strURL url地址 * @return url請求參數(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ù)沒有值,不加入 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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javaweb圖書商城設(shè)計(jì)之訂單模塊(5)
這篇文章主要為大家詳細(xì)介紹了javaweb圖書商城設(shè)計(jì)之訂單模塊,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11SpringBoot集成本地緩存性能之王Caffeine示例詳解
這篇文章主要為大家介紹了SpringBoot集成本地緩存性能之王Caffeine的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07如何使用CountDownLatch同步j(luò)ava多線程
這篇文章主要介紹了如何使用CountDownLatch同步j(luò)ava多線程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08springboot實(shí)現(xiàn)定時(shí)任務(wù)的四種方式小結(jié)
本文主要介紹了springboot實(shí)現(xiàn)定時(shí)任務(wù)的四種方式小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01MyBatis-Plus枚舉和自定義主鍵ID的實(shí)現(xiàn)步驟
這篇文章主要給大家介紹了關(guān)于MyBatis-Plus枚舉和自定義主鍵ID的相關(guān)資料,文中通過實(shí)例代碼以及圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-02-02認(rèn)識(shí)Java底層操作系統(tǒng)與并發(fā)基礎(chǔ)
這篇文章主要介紹了認(rèn)識(shí)Java底層操作系統(tǒng)與并發(fā)基礎(chǔ),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-07-07在mybatis 中使用if else 進(jìn)行判斷的操作
這篇文章主要介紹了在mybatis 中使用if else 進(jìn)行判斷的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02解決Aop @AfterReturning因返回類型不一致導(dǎo)致無法執(zhí)行切面代碼
這篇文章主要介紹了解決Aop @AfterReturning因返回類型不一致導(dǎo)致無法執(zhí)行切面代碼問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07