首頁 > Java > java教程 > 如何在 Java 中從 URI 查詢字串中提取名稱-值對?

如何在 Java 中從 URI 查詢字串中提取名稱-值對?

DDD
發布: 2024-12-26 22:35:13
原創
924 人瀏覽過

How to Extract Name-Value Pairs from a URI Query String in Java?

使用Java 從URI 提取嵌入資料

將URI 字串解析為其對應的名稱-值對是許多Web 開發中的常見任務場景。在 Java 中,您可以透過應用簡單的方法來實現此操作,而無需依賴外部程式庫。

逐步指南:

  1. 分割URI 查詢字串:
    使用URL.getQuery() 方法,取得URI查詢字串部分URI。查詢字串是問號(?)後面的部分,包含由與號(&)字元分隔的鍵值對。
  2. 單獨的鍵值對:
    分割使用 String.split("&") 方法將查詢字串分解為單獨的鍵值對。
  3. 解析鍵值對:
    對於每個鍵值對,找到等號 (=) 以將鍵與值分開。使用合適的編碼對鍵和值進行解碼,例如 URLDecoder.decode()。
  4. 建構名稱-值集合:
    建立一個映射資料結構來儲存解析後的鍵-值對。

範例實作:

下面的Java 程式碼示範如何實作上述步驟:

import java.net.URL;
import java.net.URLDecoder;
import java.util.LinkedHashMap;
import java.util.Map;

public class ParseUriQuery {

    public static Map<String, String> splitQuery(URL url) throws UnsupportedEncodingException {
        Map<String, String> queryPairs = new LinkedHashMap<>();
        String query = url.getQuery();
        String[] pairs = query.split("&");
        for (String pair : pairs) {
            int idx = pair.indexOf("=");
            queryPairs.put(URLDecoder.decode(pair.substring(0, idx), "UTF-8"), URLDecoder.decode(pair.substring(idx + 1), "UTF-8"));
        }
        return queryPairs;
    }

}
登入後複製

範例用法:

解析您問題中提供的URI,您可以使用以下程式碼:

URL url = new URL("https://google.com.ua/oauth/authorize?client_id=SS&response_type=code&scope=N_FULL&access_type=offline&redirect_uri=http://localhost/Callback");
Map<String, String> queryPairs = ParseUriQuery.splitQuery(url);

// Access parsed elements
String clientId = queryPairs.get("client_id"); // Returns "SS"
登入後複製

此方法提供了在 Java 中提取嵌入在 URI 查詢字串中的資訊的便捷且通用的方法。

以上是如何在 Java 中從 URI 查詢字串中提取名稱-值對?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板