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); } }
/* * 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 :
/** * 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