Diferència entre revisions de la pàgina «M3 - Programació estructurada / Continguts UF1: El tipus char»

De wikiserver
Dreceres ràpides: navegació, cerca
(Conversió entre char i tipus numèrics)
(Conversió entre char i tipus numèrics)
Línia 83: Línia 83:
 
:* Un caràcter pot ser convertit en un tipus numèric i al contrari.  
 
:* Un caràcter pot ser convertit en un tipus numèric i al contrari.  
  
:* Al convertir un int en un char només s'utilitzen els 16 bits de menys pes.
+
:* Al convertir un int (4 bytes) en un char (2 bytes) només s'utilitzen els 16 bits de menys pes.
 
<source lang = "java">
 
<source lang = "java">
char ch = (char) 0XAB0041;// Només és guarden els quatre 'últims' dígits
+
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'.
+
System.out.println(ch);   // (0041->65  en  decimal) i s'imprimeix una 'A'.
 
</source>
 
</source>
  
Quan  s'assigna  a  un charun  número decimal,  aquest  primer  és  convertit  en  un inti després en un char. El següent codi també imprimirà una 'A'.char ch = (char)65.25; System.out.println(ch);Quan  volem  convertir  un chara  un  tipus  numèric  s'agafa  el  seu  codi  Unicode. El següent codi imprimirà el valor 65:int i =(int)'A';System.out.println(i);
+
:* De número decimal a char:
 +
<source lang = "java">
 +
char ch = (char)65.25;     // Primer es converteix a int i desprès a char.
 +
System.out.println(ch);   // Imprimeix una 'A'.
 +
</source>
 +
 
 +
:* De cahr a número:
 +
<source lang = "java">
 +
int i =(int)'A';           // S'agafa el seu codi Unicode.
 +
System.out.println(i);     // Imprimeix un 65.
 +
</source>
  
 
==Comparació de caràcters==
 
==Comparació de caràcters==

Revisió del 21:10, 15 nov 2020

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 cahr a número:
int i =(int)'A';           // S'agafa el seu codi Unicode.
System.out.println(i);     // Imprimeix un 65.

Comparació de caràcters

La classe Character

Exercicis