El tipo primitivo char de Java es una representación de 16 bits de un único carácter Unicode.
El tipo char se basa en la especificación original de Unicode, que utilizaba 16 bits para representar caracteres.
Esto es suficiente para cubrir la mayoría de las letras comunes y abarca los caracteres en el rango de 0x0000 a 0xFFFF.
Desde entonces, la especificación ha ampliado el rango de caracteres posibles hasta 0x01FFFF.
Varios char pueden formar un string, como "word", o los char se pueden procesar de forma independiente.
Un literal char va entre comillas simples (por ejemplo, 'A').
char lowerA = 'a';
char upperB = 'B';
char de un String
El método String.toCharArray devuelve los char de un String como un array.
Como se menciona en arrays, puedes usar un bucle for para iterar sobre el array.
String text = "Hello";
char[] asArray = text.toCharArray();
for (char ch: asArray) {
System.out.println(ch);
}
// Outputs:
// H
// e
// l
// l
// o
Hay muchos métodos integrados de la biblioteca para inspeccionar y manipular char.
Puedes encontrarlos como métodos estáticos de la clase java.lang.Character.
Aquí tienes algunos ejemplos:
Character.isWhitespace(' '); // true
Character.isWhitespace('#'); // false
Character.isLetter('a'); // true
Character.isLetter('3'); // false
Character.isDigit('6'); // true
Character.isDigit('?'); // false
Algunos métodos de la clase Character tienen una sobrecarga para poder aceptar un char o un int.
Por ejemplo, isDigit tiene una que acepta un char y otra un int.
Como se mencionó antes, el tipo char solo puede representar los caracteres en el rango de 0x0000 a 0xFFFF.
El int, sin embargo, puede representar todos los caracteres, de ahí las sobrecargas de int.
char a un String
El operador + se puede usar para añadir un char a un String.
'a' + " banana" // => "a banana"
"banana " + 'a' // => "banana a"
¡Ten cuidado de no usar + para unir dos char y formar un String!
¡Sumar dos char de esta forma produce un int, no un String!
Por ejemplo:
'b' + 'c';
// => 197 (not the String "bc")
Esto se debe a que Java promociona el char a un int (consulta 4.2 Primitive Types and Values de la Java Language Specification).
Sin embargo, cuando hay que añadir muchos caracteres, puede ser más eficiente usar un StringBuilder:
StringBuilder builder = new StringBuilder();
builder.append('a');
builder.append('b');
builder.append('c');
String builtString = builder.toString();
// => abc