:::java
package fr.crim.a2012;
/**
* Une classe pour tester différents opérateurs de tests
*/
public class AffichageResultats {
/**
* Affichage d'un nombre de résultats passé en paramètre
* @param nb Un nombre de résultats à afficher
*/
private static void afficheNbResultats(int nb) {
// Version if
if (nb == 0) {
System.out.println("Aucun résultat");
}
if (nb == 1) {
System.out.println("1 résultat");
}
if (nb > 1) {
System.out.println(nb + " résultats");
}
// Version if else
if (nb == 0) {
System.out.println("Aucun résultat");
} else if (nb == 1) {
System.out.println("1 résultat");
} else {
System.out.println(nb + " résultats");
}
// Version switch
switch (nb) {
case 0:
System.out.println("Aucun résultat");
break;
case 1:
System.out.println("1 résultat");
break;
default:
System.out.println(nb + " résultats");
break;
}
// Version expression conditionnelle
String msg = (nb == 0) ? "Aucun résultat" :
(nb == 1) ? "1 résultat" : nb + " résultats";
System.err.println(msg);
}
/**
* Méthode principale
*/
public static void main(String[] args) {
// Appel de la méthode afficheNbResultats
// avec des nombre différents pour tester les différents cas
afficheNbResultats(0);
afficheNbResultats(1);
afficheNbResultats(18);
}
}
:::java
/*
* Cours Java/POO à l'INALCO
*
* (c) Pierre DITTGEN, 2012
*/
package fr.crim.a2012.i18n;
/**
* Une classe de service pour le français
*
* @author Pierre DITTGEN
* @version 0.1beta
*/
public class Fr {
/**
* Méthode principale. Récupère les paramètres de la ligne de
* commande et les affiche en retirant préalablement les accents
* @param args paramètres de la ligne de commande
*/
public static void main(String[] args) {
// Information d'usage si l'utilisateur
// n'a pas passé de paramètres
if (args.length == 0) {
System.err.println("usage: fr.crim.a2012.i18n.Fr mot [ mots ]");
System.exit(1);
}
// Traitement de l'ensemble des paramètres un à un
String sep = "";
for (String arg : args) {
System.out.print(sep + monoton(arg));
sep = " ";
}
// Retour à la ligne
System.out.println();
}
/**
* Retire les accents d'une chaîne. Ne traite que les lettres
* accentuées du français, cf. "Diacritiques_utilisés_en_français"
* sur Wikipedia
* @param chaine La chaîne de caractères à désaccentuer
* @return la chaîne sans accents
*/
public static String monoton(String chaine) {
// La chaîne à renvoyer
String ret = "";
// Parcours lettre à lettre de la chaîne retour
for (int i=0; i<chaine.length(); i++) {
// Le caractère à examiner
char cc = chaine.charAt(i);
switch (cc) {
case 'À':
case 'Â':
case 'Ä':
ret += "A";
break;
case 'Æ':
ret += "AE";
break;
case 'Ç':
ret += "C";
break;
case 'È':
case 'É':
case 'Ê':
case 'Ë':
ret += "E";
break;
case 'Î':
case 'Ï':
ret += "I";
break;
case 'Ô':
case 'Ö':
ret += "O";
break;
case 'Œ':
ret += "OE";
break;
case 'Ù':
case 'Û':
case 'Ü':
ret += "U";
break;
case 'Ÿ':
ret += "Y";
break;
case 'à':
case 'â':
case 'ä':
ret += "a";
break;
case 'æ':
ret += "ae";
break;
case 'ç':
ret += "c";
break;
case 'è':
case 'é':
case 'ê':
case 'ë':
ret += "e";
break;
case 'î':
case 'ï':
ret += "i";
break;
case 'ô':
case 'ö':
ret += "o";
break;
case 'œ':
ret += "oe";
break;
case 'ù':
case 'û':
case 'ü':
ret += "u";
break;
case 'ÿ':
ret += "y";
break;
// Si le caractère n'est pas reconnu comme accentué
// on le conserve tel quel
default:
ret += cc;
}
}
// Renvoi de la chaîne créée
return ret;
}
}
Variante :
:::java
/**
* Variante
* Retire les accents d'une chaîne. Ne traite que les lettres
* accentuées du français, cf. "Diacritiques_utilisés_en_français"
* sur Wikipedia
* @param chaine La chaîne de caractères à désaccentuer
* @return la chaîne sans accents
*/
public static String monoton(String chaine) {
// La chaîne à renvoyer
String ret = "";
// Parcours lettre à lettre de la chaîne retour
for (int i=0; i<chaine.length(); i++) {
ret += monotonbis(chaine.charAt(i));
}
// Renvoi de la chaîne créée
return ret;
}
/**
* Transforme un caractère accentué en une chaine normalisée
* ASCII 7bits.
* Si le caractère passé en entrée n'est pas accentué, il
* est renvoyé tel quel.
*/
private static String monoton(char cc) {
switch (cc) {
case 'À':
case 'Â':
case 'Ä':
return "A";
case 'Æ':
return "AE";
case 'Ç':
return "C";
case 'È':
case 'É':
case 'Ê':
case 'Ë':
return "E";
case 'Î':
case 'Ï':
return "I";
case 'Ô':
case 'Ö':
return "O";
case 'Œ':
return "OE";
case 'Ù':
case 'Û':
case 'Ü':
return "U";
case 'Ÿ':
return "Y";
case 'à':
case 'â':
case 'ä':
return "a";
case 'æ':
return "ae";
case 'ç':
return "c";
case 'è':
case 'é':
case 'ê':
case 'ë':
return "e";
case 'î':
case 'ï':
return "i";
case 'ô':
case 'ö':
return "o";
case 'œ':
return "oe";
case 'ù':
case 'û':
case 'ü':
return "u";
case 'ÿ':
return "y";
// Si le caractère n'est pas reconnu comme accentué
// on le conserve tel quel
default:
return cc+"";
}
}
Anonymous
Pour la prochaine séance [2012-11-14]
Related
Wiki: conventions de codage Java