Tipo Carattere in Java
- Il tipo di dato
char
in Java rappresenta i caratteri Unicode, utilizzando 16 bit per ogni carattere. - I caratteri possono essere rappresentati sia come valori numerici che come simboli, consentendo operazioni aritmetiche.
- Il set di caratteri standard ASCII occupa i primi 127 valori dell'insieme di caratteri Unicode.
- Le variabili
char
possono essere incrementate e utilizzate in operazioni aritmetiche, poiché sono considerate tipi interi.
Caratteri
In Java, il tipo di dato utilizzato per memorizzare i caratteri è char
.
Un aspetto fondamentale da comprendere è che Java usa Unicode per rappresentare i caratteri. Unicode definisce un insieme di caratteri completamente internazionale che può rappresentare tutti i caratteri presenti in tutte le lingue umane.
Si tratta di un'unificazione di decine di set di caratteri, come latino, greco, arabo, cirillico, ebraico, katakana, hangŭl e molti altri. All'epoca della creazione di Java, Unicode richiedeva 16 bit.
Pertanto, in Java char
è un tipo a 16 bit. L'intervallo di un char
va da 0 a 65 535. Non esistono char negativi. Il set di caratteri standard noto come ASCII va ancora da 0 a 127, mentre il set di caratteri esteso a 8 bit, ISO-Latin-1, va da 0 a 255.
Poiché Java è progettato per consentire la scrittura di programmi destinati all'uso mondiale, è logico che utilizzi Unicode per rappresentare i caratteri. Naturalmente, l'uso di Unicode risulta leggermente inefficiente per lingue come inglese, tedesco, spagnolo o francese, i cui caratteri possono essere facilmente contenuti entro 8 bit. Tuttavia, questo è il prezzo da pagare per la portabilità globale.
Ulteriori risorse su Unicode
Ulteriori informazioni su Unicode sono disponibili all'indirizzo http://www.unicode.org.
Ecco un programma che dimostra l'uso delle variabili char:
// Dimostra il tipo di dato char.
class DemoCarattere {
public static void main(String[] args) {
char car1, car2;
car1 = 88; // codice per X
car2 = 'Y';
System.out.print("car1 e car2: ");
System.out.println(car1 + " " + car2);
}
}
Questo programma visualizza il seguente output:
car1 e car2: X Y
Si noti che a car1 viene assegnato il valore 88, che è il valore ASCII (e Unicode) corrispondente alla lettera X
.
Come accennato, il set di caratteri ASCII occupa i primi 127 valori dell'insieme di caratteri Unicode. Per questo motivo, tutti i “vecchi trucchi” usati con i caratteri in altri linguaggi funzionano anche in Java.
Benché char
sia progettato per contenere caratteri Unicode, può anche essere usato come tipo intero sul quale eseguire operazioni aritmetiche. Ad esempio, è possibile sommare due caratteri o incrementare il valore di una variabile carattere. Si consideri il programma seguente:
// Le variabili char si comportano come interi.
class DemoCarattere2 {
public static void main(String[] args) {
char car1;
car1 = 'X';
System.out.println("car1 contiene " + car1);
car1++; // incrementa car1
System.out.println("car1 ora è " + car1);
}
}
L'output generato da questo programma è il seguente:
car1 contiene X
car1 ora è Y
char
come tipo intero
Nella specifica formale di Java, char
è definito come un tipo intero, il che significa che appartiene alla stessa categoria generale di int
, short
, long
e byte
. Tuttavia, poiché il suo uso principale è la rappresentazione di caratteri Unicode, char
è comunemente considerato una categoria a sé stante.