我需要能够转换:
(url) http://www.joe90.com/showroom
到
(namespace) com.joe90.showroom
我可以使用令牌等和强制规则集来执行此操作。
但是,有没有办法(一个java包)为我这样做? 还是我需要自己写一个?
由于
答案 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
)