sábado, 29 de septiembre de 2012

La clase String


Buenas amigos, en este nuevo tema vamos a ver el manejo de la clase String más a fondo. En el tema cadena de caracteres vimos como leer una cadena de caracteres y almacenarla en una variable de tipo "String", en este tema veremos como manejarlas, con sus propios métodos, una vez leídas.



Para crear un objeto de tipo String, nosotros deberíamos hacer algo como esto:
      • String s=new String("Hola");
De esta forma creamos un objeto de tipo "String", pero ya que el uso de este tipo de objetos está tan generalizado en java, la JVM nos permite crear un objeto de tipo String asignando directamente la cadena de caracteres como si de un tipo básico se tratase.
      • String s="Hola"; 
Esta última es la que todo el mundo utiliza, y para la JVM no hay ninguna diferencia entre las dos.

Esto lo digo para que sepáis que cuando hacéis:
      • String s="Hola";
Lo que realmente estáis haciendo es:
      • String s=new String("Hola");
En java, las cadenas de caracteres son inmutables, esto quiere decir que no se pueden modificar una vez creadas:
  • String s="Hola";
  • s+=s+" Mundo";
  En este código creamos un objeto tipo String con la cadena "Hola", a la cual le concatenamos la cadena " Mundo" en la siguiente linea. Bien, en lineas generales podemos pensar que hemos modificado nuestro objeto de tipo String, pero no es esto lo que sucede. Lo que realmente sucede, es que se crea un nuevo objeto con la cadena "Hola Mundo" que pasa a ser referenciado por "s", por lo tanto el objeto "Hola" deja de ser referenciado y es recolectado por el "recolector de basura (Garbage Collector)" para ser eliminado. Ya veremos más adelante el recolector de basura, solo saber que cuando un objeto deja de ser referenciado por variables, el recolector de basura lo selecciona y lo elimina, ya que no va a tener más uso.


La clase String tiene una gran variedad de métodos, en este tema veremos algunos de los que yo más he utilizado:

  • int length(): Devuelve el número de caracteres de la cadena:
  • Este ejemplo nos devuelve 10, ya que el espacio entre ambas palabras también se cuenta.

  • boolean equals(String cadena): Devuelve true si las cadenas son iguales y false si no lo son, hace distinción entre mayúsculas y minúsculas :
  • boolean equalsIgnoreCase(String cadena): Devuelve true si las cadenas son iguales y false si no lo son, NO hace distinción entre mayúsculas y minúsculas.
  • char charAt(int posicion):Devuelve el carácter contenido en la posición indicada, comenzando siempre por "0", de la cadena indicada.

  • String subString(int a, int b):Devuelve un trozo de la cadena. La subcadena obtenida va desde la posición "a" hasta la posición "b".



  • int IndexOf(String cadena):Devuelve la posición del primer carácter de la cadena pasada como parámetro, dentro de la cadena principal, si no existe, devuelve -1.
  • String replace(char viejo, char nuevo):Reemplaza el carácter viejo, por el nuevo, devolviendo la cadena resultante:
  • Recordamos que los caracteres se envuelven entre comillas simples ' ' y las cadenas entre comillas dobles " ".
  • String toUpperCase(): Devuelve la cadena en mayúsculas:

  • String toLowerCase(): Devuelve la cadena en minúscula:
  • String[] split(String carácter) : Devuelve un array de tipo String resultante de descomponer en subcadenas la cadena de caracteres, utilizando como separador el carácter pasado como parámetro:


  • static String ValueOf(Tipo_Dato_ Básico): Devuelve como cadena el valor pasado por parámetro. Este método es más para pasar datos numéricos a cadenas:
  • Este método yo personalmente no lo utilizo mucho, ya que en vez de poner:
        • System.out.println("Entero: "+String.ValueOf(x));
  • Podríamos poner:
        • System.out.pritln("Entero: "+x+"");
  • ya que concatenar cualquier valor numérico con las comillas dobles vacías ("") es pasado automáticamente a cadena.
Bien, estos son algunos de los métodos de la clase String, hay bastantes más pero para mi estos son los más utilizados.
Espero que les sirva, un saludo.

No hay comentarios:

Publicar un comentario