J'ai vérifié la partie de java.net.URL # getPath
Le contenu de l'article est vérifié avec Java 8.
Aperçu
Notez comment le '/' est géré dans la chaîne de caractères obtenue par getPath (), car je m'excite à chaque fois que j'écris le code.
Résumé
- Seul '/' est retourné même si le chemin est complètement omis
- Cependant, si l'hôte et le chemin n'existent pas, une chaîne de caractères vide est renvoyée.
- Le «/» de fin n'est pas omis
- Il ne doit pas être souligné car il ne doit pas être omis en premier lieu
Exemple
URL |
getPath() |
http://host |
/ |
http://host/ |
/ |
http://host/path |
/path |
http://host/path/ |
/path/ |
http://host?query |
/ |
http://host/?query |
/ |
http://host/path?query |
/path |
http://host/path/?query |
/path/ |
http:// |
(Chaîne vide) |
http:/// |
/ |
http:///path |
/path |
Points à garder à l'esprit
- Il est garanti de commencer par '/', donc la description suivante est correcte
path.startsWith("/path");
- Il est garanti de commencer par '/', donc si vous découpez un élément avec split ("/"), le premier élément sera toujours une chaîne vide ... Vous devez l'ignorer.
- ** Notez que split ("/") renvoie un tableau de taille 0 pour les chemins avec uniquement "/" **
String a[]=path.split("/");
if(a[1].equals("path")) {} //Le chemin est"/"Une exception se produit en cas de
- Le '/' de fin n'est pas omis, soyez donc prudent lorsque vous écrivez ce qui suit:
path.endsWith("tail"); //"/path/tail/"Si c'est le cas, ce sera faux
- getPath () ne retourne probablement jamais null
- Il ne doit pas être nul pour créer une instance en passant une chaîne URL au constructeur