在Java中,可以使用java.net.URL
類來解析URL
import java.net.MalformedURLException;
import java.net.URL;
public class URLParser {
public static void main(String[] args) {
try {
// 定義一個URL字符串
String urlStr = "https://www.example.com:8080/path?param1=value1¶m2=value2#fragment";
// 創建一個URL對象
URL url = new URL(urlStr);
// 獲取協議
String protocol = url.getProtocol();
System.out.println("協議: " + protocol);
// 獲取主機名
String host = url.getHost();
System.out.println("主機名: " + host);
// 獲取端口號
int port = url.getPort();
System.out.println("端口號: " + port);
// 獲取路徑
String path = url.getPath();
System.out.println("路徑: " + path);
// 獲取查詢參數
String query = url.getQuery();
System.out.println("查詢參數: " + query);
// 獲取片段標識符
String fragment = url.getRef();
System.out.println("片段標識符: " + fragment);
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
運行上述代碼將輸出:
協議: https
主機名: www.example.com
端口號: 8080
路徑: /path
查詢參數: param1=value1¶m2=value2
片段標識符: fragment
請注意,如果URL沒有指定端口號,getPort()
方法將返回-1
。如果需要獲取默認端口號(例如,HTTP的默認端口是80,HTTPS的默認端口是443),可以使用url.getDefaultPort()
。