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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
public static int saisirEtValiderNoCivique (String invite, int min, int max){
int noCivique;
System.out.println(invite);
do {
noCivique = Clavier.lireInt();
if (noCivique < min || noCivique > max){
System.out.println ("ERREUR! Le numero doit etre entre 1 et" +
"9999 inclusivement.");
}
} while (noCivique < min || noCivique > max);
return noCivique;
}
public static boolean positionLettresEtChiffresAlternee (String codePostal){
// compare, une par une, les valeurs entrées à celles permises
if( (codePostal.length() == 6)
&& (Character.isLetter(codePostal.charAt(0)))
&& (Character.isDigit(codePostal.charAt(1)))
&& (Character.isLetter(codePostal.charAt(2)))
&& (Character.isDigit(codePostal.charAt(3)))
&& (Character.isLetter(codePostal.charAt(4)))
&& (Character.isDigit(codePostal.charAt(5))))
{
return true;
} else {
return false;
}
}
public static String saisirEtValiderCodePostal(String invite, int noCivique)
{
// s'occupe de la saisie et de l'affichage des messages
//d'erreur et peut appeler des méthodes de validation.
//Le paramètre noCivique servira lors de la validation du code.
//Retourne le code valide.
String codePostal="";
// appel de la methode public static int saisirEtValiderNoCivique
//(String invite, int min, int max)
noCivique = saisirEtValiderNoCivique (invite, 1, 9999);
boolean valid = false;
while (!valid){
codePostal = Clavier.lireString();
valid = positionLettresEtChiffresAlternee(codePostal);
codePostal = codePostal.toUpperCase();
if(codePostal.length() != 6){
// saisie code postal different de 6 caracteres: msg erreur
System.out.println ("ERREUR! La longueur du code postal doit etre" +
"egale a 6!");
codePostal = Clavier.lireString();
} else if (codePostal.charAt(4) %2 == 0 && noCivique %2 != 0){
// parite 3 eme lettre alphabet pair avec num civique impair: msg erreur
System.out.println ("ERREUR! La parite de la troisieme lettre du code"+
"postal doit correspondre a celle du numero civique!" );
codePostal = Clavier.lireString();
} else if (codePostal.charAt(4) %2 !=0 && noCivique %2 == 0){
// parite 3 eme lettre alphabet impair avec num civique pair: msg erreur
System.out.println ("ERREUR! La parite de la troisieme lettre du code"+
"postal doit correspondre a celle du numero civique!" );
codePostal = Clavier.lireString();
}
}
return codePostal;
}
public static boolean continuer (String msgInvite){
String saisie = "";
while(true)
{
System.out.println(msgInvite);
saisie = Clavier.lireString();
if(saisie.equalsIgnoreCase("oui") || saisie.equalsIgnoreCase("o")){
return true;
}
if(saisie.equalsIgnoreCase("non") || saisie.equalsIgnoreCase("n")){
System.out.println("ERREUR! La reponse doit etre oui, non , o ou n" );
return false;
}
}
}
// Autres m�thodes s'il y a lieu
public static void main (String[] params) {
int no1 = saisirEtValiderNoCivique("Entrez un numero" +
"civique pour la PREMIERE adresse : ", 1, 9999);
String code1 = saisirEtValiderCodePostal("Entrez un code postal SANS" +
" espaces pour la PREMIERE adresse", no1 );
int no2 = saisirEtValiderNoCivique("Entrez un numero" +
"civique pour la PREMIERE adresse : ", 1, 9999);
String code2 = saisirEtValiderCodePostal("Entrez un code postal SANS" +
" espaces pour la PREMIERE adresse", no2 );
boolean saisie = continuer("Voulez-vous traiter des combinaisons" +
"de codes postaux et de numeros civiques (oui / non)?");
} // main |