Exercice java programme de conversion majuscules minuscules

But:
Ecrire un programme de conversion majuscules/minuscules
Thème:
type char
Fichiers:
-


Selon la norme Unicode, les lettres majuscules A..Z ont les codes 65 à 90 et les lettres minuscules a..z ont les codes 97 à 122:

LA NORME UNICODE
------------------------------------------------------------------
65 = A 79 = O 97 = a 111 = o
66 = B 80 = P 98 = b 112 = p
67 = C 81 = Q 99 = c 113 = q
68 = D 82 = R 100 = d 114 = r
69 = E 83 = S 101 = e 115 = s
70 = F 84 = T 102 = f 116 = t
71 = G 85 = U 103 = g 117 = u
72 = H 86 = V 104 = h 118 = v
73 = I 87 = W 105 = i 119 = w
74 = J 88 = X 106 = j 120 = x
75 = K 89 = Y 107 = k 121 = y
76 = L 90 = Z 108 = l 122 = z
77 = M 109 = m
78 = N 110 = n
-------------------------------------------------------------------

Ecrivez un programme Conversion.java qui demande à l'utilisateur d'entrer une seule lettre A..Z ou a..z au clavier (utilisez par exemple l'instruction scanner.next().charAt(0)).
Le programme affiche un message d'erreur si le caractère entré ne fait pas partie des lettres demandées. Sinon, s'il s'agit d'une lettre minuscule, la version majuscule de la lettre est affichée. Si au contraire il s'agit d'une lettre majuscule, la version minuscule de la lettre est affichée.

Exemples d'exécution:

Entrez une seule lettre A..Z ou a..z : A
Version minuscule : a

Entrez une seule lettre A..Z ou a..z : b
Version majuscule : B

Entrez une seule lettre A..Z ou a..z : *
Caractère non valable

Deux versions du programme vous sont données. La première, plutôt brute, exige de connaître le codage Unicode des caractères, c'est-à-dire de savoir exactement où sont situés les caractères alphabétiques dans cette norme). La seconde, beaucoup plus élégante, utilise simplement le fait que les caractères se suivent selon l'ordre alphabétique dans la norme et que les majuscules sont placées avant les minuscules.

Solution brute :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.Scanner;
class Conversion1 {
private static Scanner scanner = new Scanner(System.in);
public static void main(String args[]) {
System.out.print("Entrez une seule lettre A..Z ou a..z : ");
char c = scanner.next().charAt(0);
if (((int) c > 122) || ((int) c 65) ||
(((int) c > 90) && ((int) c 97))) {
System.out.println("Caractère non valable");
} else if ((int) c 91) {
System.out.println("Version minuscule : "
+ (char) (c + 32));
} else {
System.out.println("Version majuscule : "
+ (char) (c - 32));
}
}
}

"Jolie" solution:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.Scanner;
class Conversion2 {
private static Scanner scanner = new Scanner(System.in);

public static void main (String args[]) {

System.out.print("Entrez une seule lettre A..Z ou a..z : ");
char c = scanner.next().charAt(0);

if (( c 'z' ) && ( c >='a')){
c= (char) ((int)c + (int)'Z' - (int)'z');
System.out.println("Version majuscule : " + c);
} else if (( c 'Z' )&& ( c >= 'A')){
c=(char)((int)c - (int)'Z' + (int)'z');
System.out.println("Version minuscule : " + c);
} else {
System.out.println("Caractère non valable");
}
}
}
Article publié le 15 Août 2010 Mise à jour le Lundi, 31 Août 2020 18:35 par Salim KHALIL