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.

julio 13, 2012

Leer un archivo linea por linea

Esta semana empezamos con nuevas cosas y a emplear nuevas estrategias para hacer mejores publicaciones, en este vídeo tutorial veremos como hacer una clase la cual, al ser implementada podrá leer un archivo .txt linea por linea, el tutorial esta dividido en dos vídeos, a continuación les dejo la primera parte del tutorial, que trata sobre la creación de la clase Archivo.



Esta es la clase Archivo por si quieren implementarla en su computadora.


package TutorialArchivo;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
/**
 * Archivo: Archivo.jva
 * @author Bello Cerecero
 */
public class Archivo 
{
    private File archivo;
    private FileReader archivoLector;
    private BufferedReader buferLector;
    private String linea;
    
    public Archivo(String rutaArchivo)
    {
      archivo = new File(rutaArchivo);
      try 
      {
        archivoLector = new FileReader(archivo);
      } catch (FileNotFoundException error) 
       {
         System.out.println(error.getMessage());
       }
      buferLector = new BufferedReader(archivoLector);
    }
    
    public String leerLinea() throws IOException
    {
      while(buferLector.ready())
      {
        if(!(linea = buferLector.readLine()).equals("\000"))
        return linea;
      }
      buferLector.close();
      return null;
    }
}
Y este es la segunda parte del vídeo tutorial, aquí veremos como implementar la clase Archivo.


Esta es la clase PruebaArchivo.

package TutorialArchivo;
import java.io.IOException;
/**
 * Archivo: PruebaArchivo.java
 * @author Bello Cerecero
 * @since 11/07/2012
 */
public class PruebaArchivo 
{
    public static void main(String[] args) throws IOException 
    {
      Archivo archivo = new Archivo("BI.txt");
      System.out.println(archivo.leerLinea());
      System.out.println(archivo.leerLinea());
      System.out.println(archivo.leerLinea());
    }
}

marzo 12, 2012

Manejo de Cadenas: Subcadenas con substring()

Otro método de la clase String es substring(), este método retorna una parte especifica de una cadena de caracteres. Es útil, si por ejemplo, en la cadena "Buenas Intenciones" queremos obtener solo una parte de esa cadena, como "Buenas" ó "Intenciones" ó "tencion", etc.

A este método podemos pasarle 2 parámetros de tipo entero, en estos 2 números enteros debemos especificar la posición de la letra donde queremos que comience la subcadena y la posición donde queremos que termine esta. También podemos ingresar solo un parámetro al método, cuando hagamos esto, el método tomará como referencia el único numero entero que hemos ingresado como posición inicial de la subcadena y como posición final tomará el ultimo caracter de la cadena.
//Archivo: ManejoDeCadenas4.java

public class ManejoDeCadenas4 {

    public static void main(String args[]){
        
        String cadena = "Java y tus Buenas Intenciones";
        
        String subCadena1 = cadena.substring(0,4);
        String subCadena2 = cadena.substring(5,10);
        String subCadena3 = cadena.substring(4);
        
        System.out.println(subCadena1);
        System.out.println(subCadena2);
        System.out.println(subCadena3);
    }
}
En la linea 7 declaramos una variable que contiene una cadena de caracteres. En la linea 9 declaramos otra variable tipo String donde almacenaremos una subcadena de la cadena original declarada en la linea 9, a String subCadena1 le asignamos lo que retorne el método cadena.substring, a la que le pasamos 2 parámetros: 0 y 4, el método substring() toma como indice inicial de la subcadena la posición 0 y como indice final la posición 4; los caracteres que se encuentren entre la posición 0 y 4 serán parte de esa subcadena y se almacenarán en String subCadena1.

La linea 10 hace una operación similar a la descrita para la linea 9. En esta linea toma como referencia la posición 5 y 10, así que los caracteres que se encuentren entre esos indices serán parte de una subcadena y se almacenarán en String subCadena2.