82 votes

Conversion d'un caractère en majuscule

String lower = Name.toLowerCase();
int a = Name.indexOf(" ",0);
String first = lower.substring(0, a);
String last = lower.substring(a+1);
char f = first.charAt(0);
char l = last.charAt(0);
System.out.println(l);

Comment puis-je convertir les variables F et L en majuscules ?

0 votes

Quelle partie des réponses à votre question précédente n'avez-vous pas comprise ? Ma réponse contient une réponse à cette question.

0 votes

@shep - Pouvez-vous accepter la réponse de BalusC ? Cela aidera les futurs chercheurs.

152voto

BalusC Points 498232

Vous pouvez utiliser Character#toUpperCase() pour ça.

char fUpper = Character.toUpperCase(f);
char lUpper = Character.toUpperCase(l);

Elle présente toutefois certaines limites, car le monde compte beaucoup plus de personnages qu'il n'est possible d'en faire entrer dans 16 bits. char gamme. Voir également l'extrait suivant de la javadoc :

Note : Cette méthode ne peut pas gérer caractères supplémentaires . Pour prendre en charge tous les caractères Unicode, y compris les caractères supplémentaires, utilisez la commande toUpperCase(int) méthode.

42voto

Rahul Sharma Points 2732

Au lieu d'utiliser les utilitaires existants, vous pouvez essayer la conversion ci-dessous en utilisant l'opération booléenne :

En majuscules :

 char upperChar = 'l' & 0x5f

En minuscules :

   char lowerChar = 'L' ^ 0x20

Comment cela fonctionne :

Table binaire, hexagonale et décimale :

------------------------------------------
| Binary   |   Hexadecimal     | Decimal |
-----------------------------------------
| 1011111  |    0x5f           |  95     |
------------------------------------------
| 100000   |    0x20           |  32     |
------------------------------------------

Prenons l'exemple d'une petite l a L conversion :

L'opération ET binaire : (l & 0x5f)

l le caractère a ASCII 108 et 01101100 est une représentation binaire.

   1101100
&  1011111
-----------
   1001100 = 76 in decimal which is **ASCII** code of L

De même, le L a l conversion :

L'opération binaire XOR : (L ^ 0x20)

   1001100
^  0100000
-----------
   1101100 = 108 in decimal which is **ASCII** code of l

18voto

Andreas_D Points 64111

Jetez un coup d'œil à la java.lang.Character Elle fournit un grand nombre de méthodes utiles pour convertir ou tester les caractères.

2 votes

+1 J'aime les réponses qui fournissent à l'utilisateur une référence pour aller chercher la réponse.

3 votes

-1, si nous recherchons des étudiants, nous supprimons l'un des principaux avantages de l'OS. Ne pas passer un temps fou à suivre les références imbriquées des gens à travers des liens brisés.

15voto

DaveJohnston Points 5475
f = Character.toUpperCase(f);
l = Character.toUpperCase(l);

6voto

Burrito Points 861

Puisque vous savez que les caractères sont en minuscules, vous pouvez soustraire la valeur ASCII correspondante pour les rendre en majuscules :

char a = 'a';
a -= 32;
System.out.println("a is " + a); //a is A

Voici un Table ASCII pour référence

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X