【问题标题】:url and name spaces java convertionurl和命名空间java转换
【发布时间】:2009-03-11 10:56:18
【问题描述】:

我需要能够转换:

(url) http://www.joe90.com/showroom 

(namespace) com.joe90.showroom

我可以使用令牌等和强制规则集来做到这一点。

但是,有没有一种方法(java 包)可以为我做到这一点? 还是我自己写一个?

谢谢

【问题讨论】:

    标签: java url namespaces


    【解决方案1】:
    java.net.URL url = new java.net.URL("http://www.joe90.com/showroom");
    String tokens[] = url.getHostname().split(".");
    StringBuilder sb = new StringBuilder();
    for (int i=0; i<tokens.length; i++) {
      if (i > 1) {
        sb.append('.');
      }
      sb.append(tokens[i]);
    }
    String namespace = sb.toString();
    

    或者,您可以解析主机名。

    Pattern p = Pattern.compile("^(\\w+://)?(.*?)/");
    Matcher m = p.matcher(url); // string
    if (m.matches()) {
      String tokens[] = m.group(2).split(".");
      // etc
    }
    

    当然,那个正则表达式并不匹配所有的 URL,例如:

    http://username@hostname.com/...
    

    这就是我建议使用 java.net.URL 的原因:它会为您完成所有 URL 验证和解析。

    【讨论】:

      【解决方案2】:

      最好的办法是根据./ 字符拆分字符串(例如,使用Sting.split(),然后以相反的顺序连接各个部分,跳过任何您不想包含的部分(例如www)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-02-01
        • 1970-01-01
        • 2015-08-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-11
        相关资源
        最近更新 更多