20

URLアドレスがある場合。

https://graph.facebook.com/me/home?limit=25&since=1374196005

パラメータを取得 (または分割) できますか (ハードコーディングを回避)?

このような

https /// graph.facebook.com /// me/home /// {limit=25, sincse=1374196005}

4

3 に答える 3

3

純粋な Java の場合、次のコードが機能するはずです。

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

public class UrlTest {
    public static void main(String[] args) {
        try {
            String s = "https://graph.facebook.com/me/home?limit=25&since=1374196005";
            URL url = new URL(s);
            String query = url.getQuery();
            Map<String, String> data = new HashMap<String, String>();
            for (String q : query.split("&")) {
                String[] qa = q.split("=");
                String name = URLDecoder.decode(qa[0]);
                String value = "";
                if (qa.length == 2) {
                    value = URLDecoder.decode(qa[1]);
                }

                data.put(name, value);
            }
            System.out.println(data);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}
于 2013-07-19T02:11:42.823 に答える