1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| public static boolean containsOnly(String s, char cMin, char cMax) {
if ( s.length()==0 ) {
// la chaine est vide (ou null), alors il n'y a aucun caractère dans l'intervalle,
// mais on ne peut pas dire non plus qu'il y a au moins caractère qui n'est pas dans l'intervalle
// il ne faudrait pas appeler cette méthode avec une chaine vide (ou null, mais dans ce cas ça va faire une NullPointerException)
// on peut retourner n'importe quoi comme valeur, aucune des deux n'a de sens
// on va soulever une exception pour dire qu'on ne devrait pas appeler cette méthode dans ce cas
throw new IllegalArgumentException("String is empty");
}
else if ( cMin>cMax ) {
// l'intervalle est incorrect, on soulève une exception
throw new IllegalArgumentException("cMin > cMax");
}
else {
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c < cMin || c > cMax) { // le caractère n'est pas dans l'intervalle
return false; // alors on a au moins un caractère qui n'est pas dans l'intervalle, donc le résultat est false
}
}
return true; // tous les caractères étaient forcément dans l'intervalle alors le résultat est true
}
} |