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

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

DDD
Release: 2024-12-26 22:35:13
Original
862 people have browsed it

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

Extract Embedded Data from URIs Using Java

Parsing a URI string into its corresponding name-value pairs is a common task in many web development scenarios. In Java, you can achieve this operation without relying on external libraries by applying a straightforward approach.

Step-by-Step Guide:

  1. Split the URI Query String:
    Using the URL.getQuery() method, obtain the query string portion of the URI. The query string is the part after the question mark (?) and contains key-value pairs separated by the ampersand (&) character.
  2. Separate Key-Value Pairs:
    Split the query string into individual key-value pairs using the String.split("&") method.
  3. Parse Key-Value Pairs:
    For each key-value pair, locate the equals sign (=) to separate the key from the value. Decode both the key and value using a suitable encoding, such as URLDecoder.decode().
  4. Construct Name-Value Collection:
    Create a map data structure to store the parsed key-value pairs.

Sample Implementation:

The following Java code demonstrates how to implement the above steps:

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;
    }

}
Copy after login

Example Usage:

To parse the URI provided in your question, you can use the following code:

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"
Copy after login

This approach provides a convenient and versatile way to extract information embedded in URI query strings in Java.

The above is the detailed content of How to Extract Name-Value Pairs from a URI Query String in Java?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template