Inicio » Informática profesional. » Programación » Curso de Java » 3 - Clase String. Introducción a los flujos

Curso de Java

3 - Clase String. Introducción a los flujos


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Java y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Clase String

Una String es una variable referenciada asociada a un objeto de la clase java.lang.String. Se emplea para almacenar cadenas de caracteres.

Las Strings tienen una característica que las diferencia del resto de objetos: son inmutables, es decir, cuando se intenta modificarlas, por ejemplo al aplicarles un método, no se modifican sino que se crea otra String nueva.

Ejemplo 1 (inmutabilidad): se observa que siendo una String una variable referenciada no se emplea constructor para crearla sino que se siguen las mismas pautas que en la variables primitivas. Cuando se vean los constructores de String se explicará el motivo.

NOTA: los listados que no tienen número de línea no son códigos completos. Sólo muestran las líneas asociadas a la explicación.

Por consola:

Jesus Fernandez

Gráficamente:

Se verá más adelante que los objetos desreferenciados son candidatos a ser eliminados de la memoria mediante un recolector de basura o garbage collector, que trabaja en un segundo plano de forma transparente para el programador. Esto hace que la gestión dinámica de la memoria no sea una preocupación de primer nivel para un programador Java y que pueda focalizar toda su atención en desarrollar buenos códigos.

Ejemplo 2 (inmutabilidad): todos los códigos de este tema se guardarán en c:/cursojava/tema3 o en jcreator_home\MyProjects\tema3 si se emplea JCreator.

Código fuente

Por consola:

Jesus

Jesus Fernandez

11

Gráficamente:

Otras dos características de las Strings son:
  • Una String está indexada, es decir, cada uno de sus caracteres tiene asociado un índice: 0 para el primero, 1 para el segundo, etc.
  • La cadena de caracteres almacenada por una String siempre se escribe entre comillas dobles.

Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Java y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


CLASE ASOCIADA:

String, que pertenece al paquete java.lang. De aquí en adelante java.lang.String. Los paquetes se introducirán más adelante.


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Java y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


CONSTRUCTORES:

  • String(): construye un objeto de la clase String sin inicializar.

Ejemplo:

Se crea un objeto de la clase String sin inicializar, al que se asigna la variable referenciada, cadena. Luego, se inicializa con "Me llamo Jesus".

  • String(String texto): contruye una String con otra que se le pasa al argumento del constructor. Resulta un poco paradójico que para construir una String se necesite otra String. Ocurre lo siguiente:

NOTA IMPORTANTE: toda variable referenciada debe crearse con un constructor.

Pues bien, la variable referenciada String es la única que tiene la propiedad de poder construirse como una variable primitiva. En este constructor se aprovecha esta peculiaridad.

Ejemplo:

Se crea una String llamada cadenaBis pasándole al argumento del constructor otra, pero creada como si fuera una variable primitiva.

CONCLUSIÓN: cuando se trabaja con Strings no suele emplearse ningún constructor sino que se hace uso de la propiedad anteriormente comentada. Así, si se desea crear una String y mostrarla por consola, el código habitual sería:

String cadena="Esto es una cadena de texto";

System.out.println(cadena);

Así es como se ha trabajado en el ejemplo inicial del tema. Es la forma habitual de crear Strings.


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Java y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


MÉTODOS PRINCIPALES:

Para poder aplicar estos métodos es necesario crear un objeto String. Además de estos métodos, la clase String cuenta con otros muchos. Consultar la API para más información.

  • int length(): devuelve la longitud de la String, incluyendo espacios en blanco. La longitud siempre es una unidad mayor que el índice asociado al último carácter de la String.

Ejemplo:

Por consola:

4

  • int indexOf(String str, int indice): devuelve el índice en el que aparece por primera vez la String del primer argumento en la que se aplica el método, a partir del índice especificado en el segundo argumento. Recordar que una String está indexada. Si el índice a partir del que se inicia la búsqueda no existe o la String no aparece, devuelve –1. MUY USADO.

Ejemplo:

Por consola:

–1 porque la búsqueda se inicia a partir de un índice que no existe ya que el índice mayor es la longitud de la String –1.

  • int indexOf(char ch): devuelve el índice en el que aparece por primera vez el carácter que se le pasa al argumento. Si no se encuentra el carácter devuelve –1. Se observa que el nombre de este método es igual al anterior aunque su número de argumentos es distinto además de su tipo. A esto, en Java, se le llama sobrecarga de métodos: mismo nombre pero distinto nº de argumentos o distinto tipo de argumentos o distinto orden. Ir a la API para comprobar que hay más con este mismo nombre. Este concepto se tratará más en profundidad en temas posteriores.
  • String replace (char viejoChar, char nuevoChar): cambia el carácter asociado al primer argumento por el que se le pasa al segundo, de la String sobre la que se aplica el método generando una nueva. La String sobre la que se aplica el método no cambia, simplemente se crea otra nueva en base a la String sobre la que se aplica el método.

Ejemplo:

Por consola:

cucu

coco

  • String toLowerCase(): devuelve una nueva String convirtiendo todos los caracteres de la String sobre la que se aplica el método, en minúsculas.
  • String toUpperCase(): devuelve una nueva String convirtiendo todos los caracteres de la String sobre la que se aplica el método, en mayúsculas.
  • boolean equals(String str): investiga si dos String tienen los mismos caracteres y en el mismo orden. Si es así devuelve true y si no false. MUY USADO
  • boolean equalsIgnoreCase(String str): investiga si dos String tienen los mismos caracteres y en el mismo orden sin tener en cuenta las mayúsculas. Si es así devuelve true y si no false. MUY USADO
  • boolean startsWith(String str): devuelve true si la String sobre la que se aplica comienza por la del argumento; false si esto no ocurre.
  • boolean startsWith(String str, int indice): devuelve true si la String sobre la que se aplica comienza por la del argumento a partir de un determinado índice asociado al segundo argumento; false si esto no ocurre.
  • boolean endsWith(String str): devuelve true si la String sobre la que se aplica acaba en la del argumento; false si esto no ocurre.
  • String trim(): devuelve una String en base a la que se le pasa al argumento, pero sin  espacios en blanco al principio ni al final. No elimina los espacios en blanco situados entre las palabras.

Ejemplo:

Por consola:

14

12 

  • String substring(int indiceIni, int indiceFin): devuelve una String obtenida a partir del índice inicial incluido y del índice final excluido; es decir, se comporta como un intervalo semiabierto [indiceIni, indiceFin). Si el índice final sobrepasa la longitud de la String, lanza una IndexOutOfBoundsException. MUY USADO.

Ejemplo:

Por consola:

rrucu 

  • char charAt (int indice): devuelve el carácter asociado al índice que se le pasa como argumento de la String sobre la que se aplica el método. Si el índice no existe se lanza una StringIndexOutOfBoundsException que hereda de IndexOutOfBoundsException. MUY USADO.
NOTA 1: los métodos anteriores que devuelven una String NO MODIFICAN la String sobre la que se aplican; lo que hacen es crear otra nueva, en base a la que se emplea para aplicar el método. Recordar la inmutabilidad de las Strings

 

NOTA 2: ahora que ya se está un poco más familiarizado con los objetos, métodos y variables usados en Java se puede entender mejor la línea de código que se ha venido empleando para mostrar mensajes por consola “System.out.println(String str)”. La explicación para esta línea sería la siguiente:

Se está aplicando a un objeto de la clase PrintStream el método “void println(String str)”. El objeto de PrintStream se obtiene mediante la variable de campo estática out (representa la salida estándar del sistema, es decir, la consola del DOS en el caso de que el sistema sea un PC) de la clase System.

En la API se observa que el método está sobrecargado (este concepto fundamental de la Programación Orientada a Objetos, se estudiará más adelante) y por ello no va a ser necesario transformar sus argumentos en String ya que, en base a lo que le llegue se empleara una versión del método u otra. Por eso no se producen errores cuando se pasa al método una variable primitiva ya sea booleana, entera o real. El programador no debe preocuparse por el tipo de dato que le pasa al método ya que existen múltiples versiones del mismo.

Otra cuestión que se va a introducir y cuyo uso se verá más adelante es la siguiente: si se quiere convertir a String un objeto de cualquier clase, puede emplearse el método “void toString()” de java.lang.Object. Ojo pues este método sólo es aplicable a objetos, NO a variables primitivas.

Ahora conviene realizar los cuatro primeros ejercicios del tema. El número 4 tiene carácter obligatorio: si no se envía al tutor, al alumno no podrá acceder al siguiente tema del curso.


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Java y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Si desea obtener un acceso sin restricciones a los contenidos del curso de Java y disfrutar de todas las herramientas del aula virtual (Videos explicativos streaming, acceso a los foros, chat, ejercicios resueltos, la ayuda del tutor, audioconferencia, estudio de grabación, test y actividades de autoevaluación, etc...) puede inscribirse completamente gratis y comenzar a realizar de forma inmediata el curso.