Diferència entre revisions de la pàgina «M3 - Programació estructurada / Continguts UF1: El tipus char»
De wikiserver
(→El tipus char) |
(→La classe Character) |
||
(Hi ha 29 revisions intermèdies del mateix usuari que no es mostren) | |||
Línia 10: | Línia 10: | ||
:* 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). | :* 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). | ||
− | + | ||
{|border="2" cellpadding="4" cellspacing="0" style="margin: 0 auto; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;" | {|border="2" cellpadding="4" cellspacing="0" style="margin: 0 auto; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;" | ||
! align="center" width="100 px" style="background:Lavender; color:Black"|Caràcters | ! align="center" width="100 px" style="background:Lavender; color:Black"|Caràcters | ||
Línia 16: | Línia 16: | ||
! align="center" width="150 px" style="background:Lavender; color:Black"|Valor Unicode | ! align="center" width="150 px" style="background:Lavender; color:Black"|Valor Unicode | ||
|- | |- | ||
− | |'0' a '9'||48 a 57||\u0030 a \u0039 | + | |'0' a '9'||48 a 57||\u0030 a \u0039 |
|- | |- | ||
− | |A' a 'Z'||65 a 90||\u0041 a \u005A | + | |'A' a 'Z'||65 a 90||\u0041 a \u005A |
|- | |- | ||
|'a' a 'z'||97 a 122||\u0061 a \u007A | |'a' a 'z'||97 a 122||\u0061 a \u007A | ||
|} | |} | ||
+ | :* Codis equivalents: | ||
+ | <source lang = "java"> | ||
+ | char lletra = '\u0041'; | ||
+ | char lletra = 'A'; | ||
+ | </source> | ||
− | + | :* Recórrer els caràcters en ordre: | |
− | + | <source lang = "java"> | |
+ | char lletra = '\u0041'; // lletra 'A' | ||
+ | lletra++; | ||
+ | println(lletra) // escriure la lletra 'B' | ||
+ | </source> | ||
==Seqüències d'escapament== | ==Seqüències d'escapament== | ||
+ | |||
+ | :* S'utilitza una notació especial (seqüència d'escapament) per poder representar caràcters especials: | ||
+ | |||
+ | <source lang = "java"> | ||
+ | System.out.println ("El profe diu: " Java és divertit ""); // ERROR de compilació! | ||
+ | </source> | ||
+ | |||
+ | :* 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. | ||
+ | <source lang = "java"> | ||
+ | System.out.println ("El profe diu: \" Java és divertit \""); | ||
+ | </source> | ||
+ | |||
+ | :* Taula de seqüències d'escapament | ||
+ | |||
+ | {|border="2" cellpadding="4" cellspacing="0" style="margin: 0 auto; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;" | ||
+ | ! align="center" width="200 px" style="background:Lavender; color:Black"|Seqüència d'escapament | ||
+ | ! align="center" width="200 px" style="background:Lavender; color:Black"|Resultat | ||
+ | ! align="center" width="100 px" style="background:Lavender; color:Black"|Codi Unicode | ||
+ | ! align="center" width="100 px" style="background:Lavender; color:Black"|Codi Unicode | ||
+ | |- | ||
+ | | align="center"| \b||Esborrat a l'esquerra||align="center"| \u0008||align="center"| 8 | ||
+ | |- | ||
+ | | align="center"| \t||Tabulació||align="center"| \u0009||align="center"| 8 | ||
+ | |- | ||
+ | | align="center"| \n||Nova línia||align="center"| \u000A||align="center"| 10 | ||
+ | |- | ||
+ | | align="center"| \f||Salt de pàgina||align="center"| \u000C||align="center"| 12 | ||
+ | |- | ||
+ | | align="center"| \r||Retrocés de carro||align="center"| \u000D||align="center"| 13 | ||
+ | |- | ||
+ | | align="center"| \\||Caràcter '\'||align="center"| \u005C||align="center"| 92 | ||
+ | |- | ||
+ | | align="center"| \"||Caràcter '"'||align="center"| \u0022||align="center"| 34 | ||
+ | |} | ||
==Conversió entre char i tipus numèrics== | ==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. | ||
+ | <source lang = "java"> | ||
+ | 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'. | ||
+ | </source> | ||
+ | |||
+ | :* 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 char 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== | ||
+ | |||
+ | :* Dos caràcters es poden comparar igual que comparem dos números (codis Unicode). | ||
+ | |||
+ | :* Exemple: | ||
+ | <source lang = "java"> | ||
+ | '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 | ||
+ | </source> | ||
==La classe Character== | ==La classe Character== | ||
− | == | + | :* Mètodes útils per testejar caràcters. |
+ | |||
+ | {|border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;" | ||
+ | ! align="left" width="150 px" style="background:Lavender; color:Black"|Mètode | ||
+ | ! align="left" width="350 px" style="background:Lavender; color:Black"|Descripció | ||
+ | |- | ||
+ | |isDigit(ch)||Retorna cert si el caràcter és un dígit | ||
+ | |- | ||
+ | |isLetter(ch)||Retorna cert si el caràcter és una lletra | ||
+ | |- | ||
+ | |isLetterOfDigit(ch)||Retorna cert si el caràcter és una lletra o un dígit | ||
+ | |- | ||
+ | |isLowerCase(ch)||Retorna cert si el caràcter és una lletra minúscula | ||
+ | |- | ||
+ | |isUpperCase(ch)||Retorna cert si el caràcter és una lletra majúscula | ||
+ | |- | ||
+ | |isWhitespace(ch)||Retorna cert si el caràcter és un espai en blanc | ||
+ | |- | ||
+ | |toLowerCase(ch)||Retorna el caràcter en minúscula | ||
+ | |- | ||
+ | |toUpperCase(ch)||Retorna el caràcter en majúscula | ||
+ | |} | ||
+ | |||
+ | :* Exemple: | ||
+ | <source lang = "java"> | ||
+ | public static void main(String[] args){ | ||
+ | System.out.println("isDigit('a') és " + Character.isDigit('a')); | ||
+ | System.out.println("isLetter('a') és " + Character.isLetter('a')); | ||
+ | System.out.println("isLowerCase('a') és "+ Character.isLowerCase('a')); | ||
+ | System.out.println("isUpperCase('a') és "+ Character.isUpperCase('a')); | ||
+ | System.out.println("toLowerCase('T') és "+ Character.toLowerCase('T')); | ||
+ | System.out.println("toUpperCase('q') és "+ Character.toUpperCase('q'));} | ||
+ | </source> | ||
+ | |||
+ | <pre> | ||
+ | isDigit('a') és false | ||
+ | isLetter('a') és true | ||
+ | isLowerCase('a') és true | ||
+ | isUpperCase('a') és false | ||
+ | toLowerCase('T') és t | ||
+ | toUpperCase('q') és Q | ||
+ | </pre> |
Revisió de 21:32, 15 nov 2020
Contingut
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
- Mètodes útils per testejar caràcters.
Mètode | Descripció |
---|---|
isDigit(ch) | Retorna cert si el caràcter és un dígit |
isLetter(ch) | Retorna cert si el caràcter és una lletra |
isLetterOfDigit(ch) | Retorna cert si el caràcter és una lletra o un dígit |
isLowerCase(ch) | Retorna cert si el caràcter és una lletra minúscula |
isUpperCase(ch) | Retorna cert si el caràcter és una lletra majúscula |
isWhitespace(ch) | Retorna cert si el caràcter és un espai en blanc |
toLowerCase(ch) | Retorna el caràcter en minúscula |
toUpperCase(ch) | Retorna el caràcter en majúscula |
- Exemple:
public static void main(String[] args){
System.out.println("isDigit('a') és " + Character.isDigit('a'));
System.out.println("isLetter('a') és " + Character.isLetter('a'));
System.out.println("isLowerCase('a') és "+ Character.isLowerCase('a'));
System.out.println("isUpperCase('a') és "+ Character.isUpperCase('a'));
System.out.println("toLowerCase('T') és "+ Character.toLowerCase('T'));
System.out.println("toUpperCase('q') és "+ Character.toUpperCase('q'));}
isDigit('a') és false isLetter('a') és true isLowerCase('a') és true isUpperCase('a') és false toLowerCase('T') és t toUpperCase('q') és Q