JavaでURLのリンクを解析し、パラメーターを取得する方法
Javaでは、java.net.URLクラスを使ってURLリンクをパースしてパラメータを取得することができます。次のコード例をご覧ください。
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
public class URLParser {
public static void main(String[] args) {
String urlString = "http://example.com?param1=value1¶m2=value2";
try {
URL url = new URL(urlString);
// 获取URL中的参数
Map<String, String> params = getParams(url.getQuery());
System.out.println("参数列表:");
for (String key : params.keySet()) {
System.out.println(key + " : " + params.get(key));
}
// 获取URL的主机名和路径
String hostname = url.getHost();
String path = url.getPath();
System.out.println("主机名:" + hostname);
System.out.println("路径:" + path);
} catch (Exception e) {
e.printStackTrace();
}
}
// 解析URL参数
public static Map<String, String> getParams(String query) {
Map<String, String> params = new HashMap<>();
if (query != null) {
String[] pairs = query.split("&");
for (String pair : pairs) {
String[] keyValue = pair.split("=");
if (keyValue.length == 2) {
String key = keyValue[0];
String value = keyValue[1];
params.put(key, value);
}
}
}
return params;
}
}
上記サンプルでは、まずURLオブジェクトを作成してURL文字列を渡します。そして、getParamsメソッドを使用してURL内のクエリパラメータを解析し、HashMapに格納します。次に、getHostメソッドを使用してURLのホスト名を取得し、getPathメソッドを使用してURLのパスを取得します。最後に、取得したパラメータ、ホスト名、パスを出力します。
URLに記載されているパラメータが上記の例のように「key=value」形式で、「&」で区切られていることを想定していますが、URLのパラメータの記載形式が異なる場合は、getParamsメソッド内の解析ロジックを実際の状況に合わせて修正する必要があります。