url和名称空间java转换

时间:2009-03-11 10:56:18

标签: java url namespaces

我需要能够转换:

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

(namespace) com.joe90.showroom

我可以使用令牌等和强制规则集来执行此操作。

但是,有没有办法(一个java包)为我这样做? 还是我需要自己写一个?

由于

2 个答案:

答案 0 :(得分:2)

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
}

当然,正则表达式与所有网址都不匹配,例如:

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

这就是为什么我建议使用java.net.URL:它会为你做所有的URL验证和解析。

答案 1 :(得分:1)

你最好的选择是根据./字符分割字符串(例如使用Sting.split(),然后以相反的顺序连接各个部分,跳过任何你的字符串我想包括(例如www