M3 - Programació estructurada / Continguts UF1: El tipus char

De wikiserver
La revisió el 21:14, 15 nov 2020 per Rsort (Discussió | contribucions) (Comparació de caràcters)
Dreceres ràpides: navegació, cerca

El tipus char

  • El tipus de dades char representa un únic caràcter.
  • Un caràcter literal està tancat entre cometes simples. J
  • Java admet Unicode (16 bits originalment, ampliat per podre representar fins a 1.112.064 caràcters).
  • Un caràcter Unicode de 16 bits consta de dos bytes precedits per '\u', expressat en 4 dígits hexadecimals; des de \u0000 fins a \uFFFF.
  • Unicode inclou codi ASCII, des de \u0000 fins a\u007F corresponent als 128 caràcters ASCII (lletres majúscules i minúscules, dígits, puntuació i caràcters de control).
Caràcters Valor Decimal Valor Unicode
'0' a '9' 48 a 57 \u0030 a \u0039
'A' a 'Z' 65 a 90 \u0041 a \u005A
'a' a 'z' 97 a 122 \u0061 a \u007A
  • Codis equivalents:
char lletra = '\u0041';
char lletra = 'A';
  • Recórrer els caràcters en ordre:
char lletra = '\u0041'; // lletra 'A'
lletra++;
println(lletra)         // escriure la lletra 'B'

Seqüències d'escapament

  • S'utilitza una notació especial (seqüència d'escapament) per poder representar caràcters especials:
System.out.println ("El profe diu: " Java és divertit ""); // ERROR de compilació!
  • Consisteix en una barra invertida(\) seguida d'un caràcter o una combinació de dígits.
  • Exemples:
\t seqüencia d'escapament per al caràcter Tab
\u031b per representar un Unicode
  • La seqüència d'escapament es considera com un únic caràcter.
System.out.println ("El profe diu: \" Java és divertit \"");
  • Taula de seqüències d'escapament
Seqüència d'escapament Resultat Codi Unicode Codi Unicode
\b Esborrat a l'esquerra \u0008 8
\t Tabulació \u0009 8
\n Nova línia \u000A 10
\f Salt de pàgina \u000C 12
\r Retrocés de carro \u000D 13
\\ Caràcter '\' \u005C 92
\" Caràcter '"' \u0022 34

Conversió entre char i tipus numèrics

  • Un caràcter pot ser convertit en un tipus numèric i al contrari.
  • Al convertir un int (4 bytes) en un char (2 bytes) només s'utilitzen els 16 bits de menys pes.
char ch = (char) 0XAB0041; // Només és guarden els quatre 'últims' dígits
System.out.println(ch);    // (0041->65  en  decimal) i s'imprimeix una 'A'.
  • De número decimal a char:
char ch = (char)65.25;     // Primer es converteix a int i desprès a char.
System.out.println(ch);    // Imprimeix una 'A'.
  • De char a número:
int i =(int)'A';           // S'agafa el seu codi Unicode.
System.out.println(i);     // Imprimeix un 65.

Comparació de caràcters

  • Dos caràcters es poden comparar igual que comparem dos números (codis Unicode).
  • Exemple:
::'a' < 'b' és cert perquè el codi per 'a' és 97 i el codi per 'b' és 98
::'a' < 'A' és fals perquè el codi per 'a' és 97 i el codi per 'A' és 65
::'1' < '8' és cert perquè el codi per '1' és 49 i el codi per '8' és 56

La classe Character

Exercicis