Curso de Java. La clase Character.
Tal y como vimos en la página donde hablamos de las clases envoltorio para datos de tipo numérico, podemos aplicar una clase envoltorio a datos de tipo caracter. Esta nueva clase envoltorio es la clase Character.
Uso de la clase Character.
Aveces estamos usando la clase Character sin tener constancia de ello, porque el compilador de java efectúa la conversión de forma implícita siempre que se precise un objeto envoltorio de tipo Character en vez de un dato primitivo de tipo caracter.
En otras ocasiones es el propio desarrollador o programador el que ve preciso crear de forma explicita un objeto de tipo Character, para usar la implementación que dicha clase aporta.
Siempre que se necesite comprobar o analizar de alguna forma algún dato de tipo caracter o simplemente comparar caracteres, lo más efectivo es crear un objeto de Character. La clase Character aporta numerosos y valiosos metodos que facilitan enormemente el trabajo del programador o desarrollador de programas.
La siguiente sentencia crea un objeto de la clase Character:
1 | Character objCh = new Character('c'); |
Métodos mas usados de la clase Character.
Aquí os dejo una lista de los principales métodos de la clase Character. La mayoría retornan un valor booleano o un int:
Método. | Descripción. |
---|---|
compare(char x, char y) | Compara dos caracteres numéricamente. |
compareTo(Character anotherCharacter) | Compara dos objetos de la clase Character – (retorna int) |
digit(char ch, int radix) | Devuelve el valor numérico del carácter con int especificado. |
getNumericValue(char ch) | Devuelve el valor entero que representa el carácter especificado (punto de código Unicode). |
getNumericValue(int codePoint) | Devuelve el valor absoluto de un valor long introducido como parámetro. |
getType(char ch) | Devuelve un valor que indica el tipo de carácter. |
getType(int codePoint) | Devuelve un valor que indica el tipo de carácter. |
hashCode(char value) | Devuelve un código hash para un carácter. |
isAlphabetic(int codePoint) | Determina si el carácter especificado (punto de código Unicode) es un alfabeto. |
isDigit(char ch) | Determina si el carácter especificado es un dígito. |
isLetter(char ch) | Determina si el carácter especificado es una letra. |
isLetterOrDigit(char ch) | Determina si el carácter especificado es una letra o un dígito. |
isLowerCase(char ch) | Determina si el carácter especificado es un carácter escrito en minúscula. |
isUpperCase(char ch) | Determina si el carácter especificado es un carácter escrito en mayúscula. |
isWhitespace(char ch) | Determina si el carácter especificado es un espacio en blanco. |
toLowerCase(char ch) | Convierte el caracter a minúsculas. |
toString(char c) | Devuelve un objeto o cadena String del carácter pasado como argumento. |
toUpperCase(char ch) | Convierte el carácter a mayúsculas. |
valueOf(char c) | Devuelve un objeto del carácter pasado como argumento. |
Ejemplo del uso de los métodos de la clase Character
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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | package clasecharacter; /** * * @author codesitio.com */ public class ClaseCharacter { public static void main(String[] args) { int resu = 0; char A ='a'; char B ='A'; //Creamos los objetos envoltorio Character // Esta opción valdria también // Character objCh = 'c'; Character objCh = new Character('C'); Character objCh2 = new Character('C'); Character objCh3 = new Character('3'); Character objCh4 = new Character('n'); //Retorna valor primitivo del objeto Character System.out.println("El valor primitivo del objeto es: "+objCh.charValue()); /* * Compara dos caracteres. Hemos usado directemente * la clase estatica Character, podiamos haber usado * también el objeto objCh para llamar al método compare() */ resu = Character.compare(A, B); if(resu == 0){ System.out.println("Son iguales"); }else if (resu < 0){ System.out.println("A Es menor que B"); }else{ System.out.println("A Es mayor que B"); } //Compara numéricamente dos objetos Character resu = objCh.compareTo(objCh2); if(resu == 0){ System.out.println("objCh y objCh2 Son iguales"); }else if (resu < 0){ System.out.println("objCh Es menor que objCh2"); }else{ System.out.println("objCh Es mayor que objCh2"); } //Comprueba si el objeto tiene un digito o una letra //Comprobar el uso de charvalue() if(objCh3.isDigit(objCh3.charValue())){ System.out.println("El valor del objeto es un digito"); }else{ System.out.println("El valor del objeto no es un digito"); } if(objCh4.isLetter(objCh4.charValue())){ System.out.println("El valor del objeto es una letra"); }else{ System.out.println("El valor del objeto no es una letra"); } } } |
En consola tenemos la siguiente salida:
Uso de secuencias de escape en cadenas o caracteres.
Las secuencias de escape nos permiten realizar acciones e insertar caracteres que de otra forma no se podrían realizar o insertar. Por ejemplo introducir el carácter de las comillas («) en una cadena de caracteres.
Para emplear secuencias de escape utilizamos la barra invertida «\» seguida de un carácter que el compilador de java interpreta de una forma especial. La siguiente tabla muestra las secuencias de escape mas usadas de Java:
Secuencia de escape | Descripción |
---|---|
\t | Inserta una tabulación en la posición donde esta incluida. |
\b | retorno de carro un digito y sobreescribe. |
\n | Inserta una línea nueva. |
\r | borra todo caracter hasta inicio de cadena. |
\f | Inserta un formfeed en el texto en este punto. |
\’ | Inserta el carácter de comilla simple en ese punto. |
\» | Inserta un carácter de doble comilla en ese punto. |
\\ | Inserte un carácter de barra invertida en ese punto. |
A continuación vemos un ejemplo de uso de secuencias de escape en un programa java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | package clasecharacter; /** * * @author codesitio.com */ public class CSecuenciasEscape { public static void main(String[] args) { //Ejemplo de uso de secuencias de escape System.out.println("El perro de San roque no tiene rabo"); System.out.println("El \"perro\" de \"San roque\" no tiene rabo"); } } |
En consola tenemos que esta secuencia de escape hace que podamos incluir comillas en la cadena de caracteres: