如何在不使用Java中的集合的情况下划分URL

时间:2017-08-03 12:09:05

标签: java

任何人都可以帮助我如何在不使用集合的情况下划分URL。 示例:我有网址(https://localhost:8080/prodpat/admin/page1) 必须划分如下

https
localhost
8080
prodapt
admin
page1

3 个答案:

答案 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("_")));
    }
}

说明:

  1. 用于分割字符串的正则表达式将像任何特殊字符一样。
  2. 现在,当您将具有特殊字符的URL一个接一个地拆分时(如://),拆分数组将不足以完全满足要求。
  3. 所以再次将数组内容(其长度不是零,即使修剪后不是空字符串而不是只有空格的字符串)附加到StringBuilder,并使用任何常见的分隔符_。< / LI>
  4. 最后使用附加的公共分隔符转换为StringBuilder后将String拆分。
  5. 最终阵列将是您所需要的。

答案 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] );
    }