julio 20, 2012

String y char, Un análisis detallado

Esta ocasión hablaremos de letras y números. Haremos un análisis detallado del comportamiento de las cadenas de caracteres String y los caracteres char. Como ya sabemos una cadena de caracteres String en java es manejado como un objeto, una cadena de caracteres va entre comillas dobles, como: "Buenas Intenciones", a diferencia de un char (que no es un objeto) es un tipo de dato primitivo y este va entre comillas simples, como 'B'.

Una cadena de caracteres al ser un objeto, tiene metodos que podemos invocar, por ejemplo en una instruccion para mostrar un mensaje en consola:
System.out.println("buenas intenciones".toUpperCase());
La cadena de caracteres "buenas intenciones" esta llamando a su método toUpperCase() que hace que el mensaje se muestre en mayúsculas.

Los char en cambio aunque se escriben literales, en realidad son valores numéricos enteros, basados en el código ASCII (pronunciado "Asqui"); Por ejemplo el char 'B' en realidad es el numero: 66 (Al final del post dejo la tabla del código ASCII para su apoyo). Entendiendo las diferencias entre String "A" y char 'A' podemos sacar provecho de esto y jugar con ambos... ¡Hagamos código!.
//Archivo: DemoCaracteres.java

public class DemoCaracteres {
    
    public static void main(String args[]){
        
        //Concatenando un int y un string
        System.out.println("Usando un String:");
        for(int contador=0; contador < 5; contador++)
            System.out.println(contador+"A");
        
        System.out.println("\nUsando un char:");
        //Otra prueba; Concatenando char y string
        for(int contador=0; contador < 5; contador++)
            System.out.println(contador+'A');
    }
}
En el programa anterior, hacemos dos experimentos, uno para ver el comportamiento de los String y el otro para mostrar como se comporta un char.

El primer experimento inicia en la linea 8. En la linea nueve declaramos un for que va a imprimir la serie de valores que toma la variable contador (de 0 a 4) y le concatenamos la cadena de caracteres "A". De tal modo que realizara 5 impresiones en pantalla en una linea cada una: 0A, 1A, 2A, 3A y 4A.

En el segundo experimento que comienza en la linea 12, se realiza el mismo proceso con el for, solo que a los valores que ira tomando contador le concatenaremos el valor de la variable char 'A'. Al ser 'A' un char (un valor numérico entero basado en el código ASCII) y al momento de la concatenación con el valor de contador se estará realizando una suma, por tal motivo la salida sera: 65, 66, 67, 68 y 69.
Esto se debe a que la variable contador va tomando valores de 0 a 4 a lo largo de la vida del for y el carácter 'A' vale 65 en el código ASCII, entonces al concatenar el valor de 'A' (65) más el valor que va tomando contador en realidad se va efectuando una suma: 65+0 y lo imprime, 65+1 y lo imprime, 65+2 y lo imprime y asi para el resto del for.

De clic en la imagen para ampliarla y apreciarla mejor.
Loading...