2009-03-11 10 views
1

Je dois être en mesure de convertir:espaces url et nom java convertion

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

à

(namespace) com.joe90.showroom 

Je peux le faire en utilisant des jetons etc, et un ensemble de règles appliquées.

Cependant, y a-t-il un moyen (un paquet java) de le faire pour moi? ou dois-je en écrire un moi-même?

Merci

Répondre

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(); 

Vous pouvez également analyser le nom d'hôte sur.

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

Bien sûr que regex ne correspond pas à toutes les URL, par exemple:

http://[email protected]/... 

Voilà pourquoi je suggère à l'aide java.net.URL: il fait toute la validation des URL et l'analyse syntaxique pour vous.

+0

Qu'est-ce que le -1? –

+0

de ne pas mettre le. Avant la première entrée .. – joe90

1

Votre meilleur pari serait de diviser la chaîne en fonction des caractères . et / (par exemple, en utilisant Sting.split(), puis concaténer les morceaux dans l'ordre inverse, en sautant sur tout vous ne voulez pas inclure (par exemple www)