Rumah >Java >javaTutorial >Bagaimana untuk Menghuraikan Rentetan URI ke dalam Koleksi Nilai Nama di Jawa?

Bagaimana untuk Menghuraikan Rentetan URI ke dalam Koleksi Nilai Nama di Jawa?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-18 22:05:11550semak imbas

How to Parse a URI String into a Name-Value Collection in Java?

Menghuraikan Rentetan URI ke dalam Koleksi Nilai-Nama

Disebabkan ketiadaan Java yang ditakrifkan secara eksplisit bersamaan dengan HttpUtility C#/.NET. Kaedah ParseQueryString, pendekatan alternatif diperlukan untuk menghuraikan rentetan URI ke dalam nilai nama koleksi. Jawapan ini meneroka pelaksanaan Java tersuai yang mencapai fungsi ini.

Kod Java untuk Penghuraian URI

Kod Java berikut boleh digunakan untuk memisahkan rentetan URI kepada nama -koleksi pasangan nilai:

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

Penggunaan dan Contoh

Kaedah ini boleh digunakan dengan URL sebagai hujah dan ia mengembalikan Peta yang mengandungi pasangan nilai nama yang dihuraikan. Contohnya, menggunakan URI yang disediakan dalam soalan:

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> query_pairs = splitQuery(url);
System.out.println(query_pairs.get("client_id")); // prints "SS"

Kaedah ini memudahkan akses mudah kepada nilai yang dihuraikan dengan menggunakan antara muka Peta. Adalah penting untuk ambil perhatian bahawa penyahkodan URL dilaksanakan dalam kaedah ini untuk memastikan pengendalian yang betul bagi aksara yang dikodkan dalam URI.

Penambahan

Kemas kini seterusnya kepada penyelesaian ini telah ditangani keperluan tambahan, seperti mengendalikan berbilang parameter dengan kunci yang sama dan parameter tanpa nilai. Tambahan pula, versi Java8 telah disediakan untuk mereka yang menggunakan versi Java yang lebih terbaharu.

Memandangkan respons ini telah mendapat populariti yang ketara, kod Java yang disediakan telah diperhalusi secara berterusan untuk menawarkan pendekatan yang lebih mantap dan serba boleh kepada penghuraian URI.

Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan Rentetan URI ke dalam Koleksi Nilai Nama di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn