任何人都可以帮助我如何在不使用集合的情况下划分URL。 示例:我有网址(https://localhost:8080/prodpat/admin/page1) 必须划分如下
https
localhost
8080
prodapt
admin
page1
答案 0 :(得分:3)
1。您可以使用split(":|/")
String url = "https://localhost:8080/prodpat/admin/page1";
String[] array = url.split("/|:|://");
String https = array[0]; // https
String localhost = array[1]; // localhost
String port = array[2]; // 8080
String prodapt = array[3]; // prodpat
String admin = array[4]; // admin
String page1 = array[5]; // page1
2。或使用java.net.URL
,并取回您需要的元素:
public static void main(String[] args) {
try {
URL url = new URL("https://localhost:8080/prodpat/admin/page1");
String https = url.getProtocol(); // https
String localhost = url.getHost(); // localhost
int port = url.getPort(); // 8080
String[] path = url.getPath().split("/"); // /prodpat/admin/page1
String prodapt = path[1]; // prodpat
String admin = path[2]; // admin
String page1 = path[3]; //page1
} catch (MalformedURLException ex) {
Logger.getLogger(Test3.class.getName()).log(Level.SEVERE, null, ex);
}
}
答案 1 :(得分:1)
你可以试试这个
public class SplitURL {
public static void main(String[] args) {
String url = "https://localhost:8080/prodpat/admin/page1";
String[] urlSplitData = url.split("[^A-Za-z0-9]");
System.out.println(java.util.Arrays.toString(urlSplitData));
StringBuilder sb = new StringBuilder();
for(int i=0; i<urlSplitData.length; i++) {
if(urlSplitData[i].trim().length() != 0) {
sb.append(urlSplitData[i]+"_");
}
}
System.out.println(java.util.Arrays.toString(sb.toString().split("_")));
}
}
说明:
://
),拆分数组将不足以完全满足要求。StringBuilder
,并使用任何常见的分隔符_
。< / LI>
StringBuilder
后将String
拆分。最终阵列将是您所需要的。
答案 2 :(得分:0)
你可以试试这个。
URL url = new URL("https://localhost:8080/prodpat/admin/page1");
String[] tokens = url.toString().split("://|/|:");
for (int i =0 ; i < tokens.length ; i++){
System.out.println( tokens[i] );
}