[Précédent]
[Index] | [Enoncé] | [Version imprimable]
[Prochain]

4.7
  Comment s'appelait Napoléon? - Corrigé
Niveau 1
 
 
Fichiers:
  NapoleonSimple.java, Napoleon.java    

L'algorithme simple (qui présuppose que l'utilisateur introduit toujours correctement un prénom) est le suivant: on cherche l'indice du 1er caractère blanc ('') après le prénom concerné et du 1er caractère blanc suivant ce blanc (méthode indexOf). On extrait alors la chaîne située entre ces deux indices (méthode substring).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.util.Scanner;

class NapoleonSimple {

    private static Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        String noms = "Napoleon Bonaparte Bill Gates Claudia Schiffer Martina Hingis ";
        System.out.print("Entrez le prenom de la personne a rechercher: ");
        String prenom = scanner.nextLine();

        int prenomStart = 0;
        prenomStart = noms.indexOf(prenom);

        if (prenomStart < 0) {
            System.out.println("Inconnu au bataillon!");
        } else {
            int nomStart = noms.indexOf(' ', prenomStart) + 1;
            int nomEnd = noms.indexOf(' ', nomStart);
            String nom = noms.substring(nomStart, nomEnd);
            System.out.println("Le nom complet est: " + prenom + " " + nom);
        }
    }
}

Critique : Cet algorithme a le mérite de la simplicité mais n'est pas très robuste. L'utilisateur peut très bien introduire par mégarde un nom au lieu d'un prénom. Ce qui produira alors un résultat fantaisiste. Le fichier fourni Napoleon.java vous détaille une solution améliorée, parant à ce problème.

 


[Précédent]
[Index] | [Enoncé] | [Version imprimable]
[Prochain]