Uno de los problemas más comunes, cuando trabajamos en Castellano o en otros idiomas diferentes al inglés, es la representación de caracteres que no se encuentran en la codificación ASCII, representar la ñ para el castellano, o los simbolos del Euro (€), o Yen (¥) son generalmente una tarea engorrosa sino sabemos que implementación utilizar. Como la codificación ASCII es muy limitada, lo usual que se hace en estos casos es representar dichos caracteres en formato Unicode (Codificación de Caracteres universal, uniforme y único).Te explicaremos como representar cualquier caracter en formato  unicode y transformarlo a String en Java.

Los caracteres en Unicode tienen una longitud de16 bits (UTF-8 / UTF-16 son los más utilizados) al igual que la longitud de los valores para el tipo de dato Char en Java, por lo que este tipo de dato puede almacenar cualquier caracter de estos.

Utilizaremos el método charAt(int index) de la clase String, que retorna un caracter Unicode en el indice que le especifiquemos, y si lo combinamos con el método append() de la Clase StringBuilder, la cual acepta l tipo de dato char tenemos la combinación que necesitamos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class UnicodeChars {

public static void main(String[] argv) {

StringBuffer b = new StringBuffer();

for (char c = 'a'; c <= 'd'; c++) {

b.append(c);

}

b.append('\u00a5'); // simbolo del Yen

b.append('\u01FC'); // simbolo Romano AE acentuado

b.append('\u0391'); // Letra Alpha Griega

b.append('\u03A9'); // Letra Omega Griega

b.append('\u00d1'); // Letra Ñ Castellano

for (int i = 0; i < b.length(); i++) {

System.out.println("Caracter #" + i + " es " + b.charAt(i));

}

System.out.println("Toda la cadena " + b);

}

}

 

Esta clase nos genera una salida como esta

Caracter #0 es a
Caracter #1 es b
Caracter #2 es c
Caracter #3 es d
Caracter #4 es ¥
Caracter #5 es ?
Caracter #6 es ?
Caracter #7 es O
Caracter #8 es Ñ
Toda la cadena abcdefghijklmnopqrstuvwxyz¥??OÑ

 

 

 

(Visited 193 times, 1 visits today)