US

Écriture de classes

Question 1

Écrivez une classe URL qui représente un URL. Le contructeur de la classe reçoit un URL sous forme d'un objet String, on suppose que le paramètre possède le bon format.

Définissez une méthode qui permet de récupérer le nom de domaine et le chemin de l'URL. Redéfinissez également la méthode toString. Voici une main d'exemple avec le résultat attendu :

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
public static void main (String[] args)
{
    URL url1 = new URL ("http://www.ukonline.be");
    URL url2 = new URL ("http://www.ukonline.be/programmation/java");
 
    System.out.println (url1.getDomainName());
    System.out.println (url2.getDomainName());
 
    System.out.println (url1.getPath());
    System.out.println (url2.getPath());
}
www.ukonline.be
www.ukonline.be
/
/programmation/java

Vous devez, bien entendu, utiliser les méthodes de la classe String.

Solution

Voici une première solution possible, dans laquelle n'a qu'une seule variable d'instance qui stocke l'URL complète. Les méthodes getDomainName et getPath recalculent donc à chaque fois leur résultat.

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
public class URL
{
    private String url;
 
    public URL (String url)
    {
        this.url = url;
    }
 
    public String getDomainName()
    {
        int slashpos = url.indexOf ("/", 7);
        if (slashpos > 0)
        {
            return url.substring (7, slashpos);
        }
        return url.substring (7);
    }
 
    public String getPath()
    {
        int slashpos = url.indexOf ("/", 7);
        if (slashpos > 0)
        {
            return url.substring (slashpos);
        }
        return "/";
    }
 
    public String toString()
    {
        return url;
    }
}

Une autre solution possible aurait été de calculer une fois pour toute le nom de domaine et le chemin dans le constructeur.

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
public class URL
{
    private String domain;
    private String path;
 
    public URL (String url)
    {
        int slashpos = url.indexOf ("/", 7);
        if (slashpos > 0)
        {
            domain = url.substring (7, slashpos);
            path = url.substring (slashpos);
        }
        else
        {
            domain = url.substring (7);
            path = "/";
        }
    }
 
    public String getDomainName()
    {
        return domain;
    }
 
    public String getPath()
    {
        return path;
    }
 
    public String toString()
    {
        return "http://" + domain + path;
    }
}

Vous pouvez télécharger la liste des questions. Si vous avez des problèmes ou que vous ne comprenez pas bien une question, rendez-vous sur le forum consacré aux exercices.

  • Espace membre
  • Learning Center
  • Les forums
  • Livre d'or
  • Imprimer
  • Boutique
  • Info
  • Règlement
  • Erreur
  • Newsletter

MyPagerank.Net

Firefox 3.6

Browse Happy logo

Open Clip Art Library

Join our Facebook Group

Twitter

Copyright © 2000-2018 UKO. Toute reproduction strictement interdite sans autorisation du webmaster

Valid XHTML 1.1 !
Valid CSS2 !
Level Triple-A conformance icon, W3C-WAI Web Content Accessibility Guidelines 1.0
ICRA Internet Content Rating Association
Creative Commons License
Site optimisé pour Firefox avec une résolution 1024x768 --- Page chargée en 0.0910680 secondes --- This site uses Thumbshots previews