miércoles, 31 de julio de 2013

Obtener el código ascii de un caracter en Java

En ocasiones es necesario obtener el código ascii de un carácter en particular o de cada uno de los caracteres que conforman un String, por ejemplo para enviar en un mensaje y que este sea reconstruido en el receptor. Esto se puede solucionar mediante el siguiente trozo de código:
    
String cadena = "hola amigo";        
        
for(int i=0;i<cadena.length();i++){
     int ascii = cadena.charAt(i);
     System.out.println("Caracter: " + cadena.charAt(i) + " --- Código ascii: " + ascii);
}

Al imprimir se puede comprobar como cada carácter posee su propio código ascii:
Caracter: h --- Código ascii: 104
Caracter: o --- Código ascii: 111
Caracter: l --- Código ascii: 108
Caracter: a --- Código ascii: 97
Caracter:   --- Código ascii: 32
Caracter: a --- Código ascii: 97
Caracter: m --- Código ascii: 109
Caracter: i --- Código ascii: 105
Caracter: g --- Código ascii: 103
Caracter: o --- Código ascii: 111

martes, 30 de julio de 2013

Reducir el número de decimales en Java

Para empezar este blog dedicado a la informática y a la programación especialmente, nada mejor que con un ejemplo pequeño y simple pero que soluciona algún problema que pueda surgir por no saber hacerlo.

El problema es el de reducir el número de decimales de un número real en Java. Suele pasar que al realizar una operación en un determinado programa el resultado tenga una cantidad elevada de decimales, y que se desee eliminarlo. La solución es simple utilizando el método rint de la clase Math y se puede observar en el siguiente programa:
        double numero = 1.3949343092;
        double numeroRecortado;
        
        numeroRecortado = Math.rint(numero*100)/100;
        
        System.out.println("Número original: " + numero);
        System.out.println("Número recortado a dos decimales: " + numeroRecortado);

El resultado de la ejecución se puede ver a continuación, notando que se han reducido los decimales a solamente dos.
 
Número original: 1.3949343092
Número recortado a dos decimales: 1.39

Se pueden seleccionar los decimales que se quieran cambiando los valores que multiplican y dividen al número (los "100" en el caso de dos decimales). Para seleccionar el número que se desee de decimales habrá que añadir tantos ceros como decimales haya. Por ejemplo, en el caso de tres decimales:
 
        double numero = 1.3949343092;
        double numeroRecortado;          
        
        numeroRecortado = Math.rint(numero*1000)/1000;
        
        System.out.println("Número original: " + numero);
        System.out.println("Número recortado a tres decimales: " + numeroRecortado); 

El resultado de la ejecución se puede ver a continuación, notando que se han reducido los decimales a tres aplicando el redondeo necesario:
 
Número original: 1.3949343092
Número recortado a tres decimales: 1.395

En definitiva, una solución sencilla pero de mucha ayuda.