O tipo primitivo char de Java é uma representação de 16 bits de um único caráter Unicode.
O tipo char baseia-se na especificação original do Unicode, que usava 16 bits para representar carateres.
Isto é suficiente para cobrir a maioria das letras comuns e abrange os carateres no intervalo de 0x0000 a 0xFFFF.
Desde então, a especificação expandiu o intervalo de carateres possíveis até 0x01FFFF.
Vários chars podem compor uma string, como "word", ou os chars podem ser processados individualmente.
Um literal char é rodeado por aspas simples (por exemplo, 'A').
char lowerA = 'a';
char upperB = 'B';
chars de uma String
O método String.toCharArray devolve os carateres de uma String como um array.
Como referido em arrays, podes usar um ciclo for para iterar sobre o array.
String text = "Hello";
char[] asArray = text.toCharArray();
for (char ch: asArray) {
System.out.println(ch);
}
// Outputs:
// H
// e
// l
// l
// o
Há muitos métodos incorporados na biblioteca para inspecionar e manipular chars.
Podes encontrá-los como métodos estáticos da classe java.lang.Character.
Aqui estão alguns exemplos:
Character.isWhitespace(' '); // true
Character.isWhitespace('#'); // false
Character.isLetter('a'); // true
Character.isLetter('3'); // false
Character.isDigit('6'); // true
Character.isDigit('?'); // false
Alguns métodos da classe Character têm uma sobrecarga, para poderem receber um char ou um int.
Por exemplo, isDigit tem uma que aceita um char e outra um int.
Como referido anteriormente, o tipo char só consegue representar os carateres no intervalo de 0x0000 a 0xFFFF.
O int, no entanto, consegue representar todos os carateres, daí as sobrecargas com int.
char a uma String
O operador + pode ser usado para adicionar um char a uma String.
'a' + " banana" // => "a banana"
"banana " + 'a' // => "banana a"
Tem cuidado para não usares + para juntar dois chars e formar uma String!
Somar dois chars desta forma dá um int, não uma String!
Por exemplo:
'b' + 'c';
// => 197 (not the String "bc")
Isto acontece porque Java promove o char a int (ver 4.2 Primitive Types and Values da Java Language Specification).
No entanto, quando há muitos carateres para adicionar, pode ser mais eficiente usar um StringBuilder:
StringBuilder builder = new StringBuilder();
builder.append('a');
builder.append('b');
builder.append('c');
String builtString = builder.toString();
// => abc