ホームページ >Java >&#&チュートリアル >外部ライブラリを使用せずに Java で URI クエリ文字列を名前と値のペアに解析する方法

外部ライブラリを使用せずに Java で URI クエリ文字列を名前と値のペアに解析する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-24 21:34:33329ブラウズ

How to Parse URI Query Strings into Name-Value Pairs in Java Without External Libraries?

URI 文字列を名前と値のコレクションに解析する

はじめに

URI 文字列を解析してその構成要素にすることは、Web 開発における一般的なタスクです。このタスクを達成するために、Java はいくつかの組み込み機能と外部ライブラリを提供します。この記事では、外部依存関係を使用せずに URI 文字列を解析するための Java ベースのソリューションに焦点を当てます。

クエリ パラメータの解析

URI のクエリ部分には、 '&' キャラクター。これらのパラメータを解析してマップにするには、次のメソッドを使用できます。

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

使用例

指定された URL を例として使用します。

https://google.com.ua/oauth/authorize?client_id=SS&response_type=code&scope=N_FULL&access_type=offline&redirect_uri=http://localhost/Callback

SplitQuery メソッドは次のマップを返します:

{client_id=SS, response_type=code, scope=N_FULL, access_type=offline, redirect_uri=http://localhost/Callback}

エンコーディング考慮事項

このメソッドには、パラメーター値に存在する特殊文字を処理するための URL デコードが含まれています。

同じキーによる複数のパラメーターの処理

メソッドの更新バージョンが提供されています複数のパラメーターが同じキーを持つシナリオを処理します。このバージョンでは Map> を使用します。指定されたキーのすべての値を追跡します。

Java 8 バージョン

このメソッドの Java 8 実装も利用できます。これは、ラムダ式とストリームを活用して、簡潔で効率的なソリューションを実現します。

結論

splitQuery メソッドを使用すると、URI クエリ文字列をその構成要素に簡単に解析できます。外部ライブラリに依存しない名前と値のペア。この機能は、ユーザー入力の抽出や RESTful エンドポイントからのパラメーターの取得など、さまざまな Web 開発タスクに不可欠です。

以上が外部ライブラリを使用せずに Java で URI クエリ文字列を名前と値のペアに解析する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。