En esta ocasión empezamos ya a trabajar un poco más con los Strings de Java, ya que es un tema al cual no le he dado demasiada importancia en el curso y los vamos a necesitar para hacer muchas cosas.


Los tipos de datos primitivos y los Strings

Quizás te hayas preguntado, porque los Strings no están catalogados como tipos primitivos.

Los tipos de datos primitivos, como los números, valores booleanos, caracteres tipo ‘char’, son simples. Es decir, solo necesitan un espacio pequeño en la memoria para almacenarse. Por ejemplo, un número entero se puede almacenar en cuatro bytes de memoria con un ‘int’.

En cambio, los Strings o cadenas de caracteres son más complejos y necesitan más espacio en la memoria. Un String es una secuencia de caracteres, y cada carácter ocupa un espacio en la memoria. Además, los Strings pueden ser de diferentes longitudes, lo que significa que necesitan un espacio de memoria variable.

Cuando se compara un tipo de dato primitivo con otro, se puede comparar directamente el valor almacenado en la memoria. Pero cuando se compara un String con otro, se deben comparar los caracteres en cada cadena para determinar si son iguales.

Como puedes comprobar, en Java, los strings son bastante diferentes de los tipos de datos primitivos.

Concatenación de Strings

La concatenación de Strings en Java la hemos realizado hasta ahora con el operador ‘+’:

String texto1 = "Programación";
String texto2 = "Fácil";
String texto3 = texto1 + " " + texto2;

System.out.print(texto3);

Resultado en la consola

Programación Fácil

También la podemos realizar con el método concat() que pertenece a la propia clase String.

String texto1 = "Programación";
String texto2 = "Fácil";
String texto3 = texto1.concat(" ").concat(texto2);

System.out.print(texto3);

Con ‘texto1.concat(» «)’ le indicamos que queremos concatenar » » al valor del string de ‘texto1’. Luego, con un punto, podemos ir añadiendo más concat(). En este caso, se añade el valor de ‘texto2’.

Resultado en la consola

Programación Fácil

Comparación de Strings en Java

Otra cosa muy habitual con Strings, es comparar si ambos son iguales.

En Java, se pueden buscar y reemplazar Strings utilizando métodos como indexOf(), lastIndexOf(), replace(), etc. Todos ellos, pertenecientes a la clase String de Java.

El método indexOf()

El método indexOf() devuelve la posición de la primera ocurrencia de una subcadena en una cadena.

String texto1 = "Programación Fácil";
int valorIndice = texto1.indexOf("Fácil");

System.out.print(valorIndice);

¿Qué es el índice de los Strings?

Los Strings están formados como te he indicado anteriormente por un conjunto variable de caracteres. Entonces, para poder manipular individualmente cada uno de estos, existe lo que se conoce como índice.

El índice de los Strings empieza por el valor entero 0 y va aumentando en 1 con cada caracter.

Por ejemplo, en la palabra Programación, la ‘P’ tiene la posición 0 en el índice, la ‘r’ la 1, la ‘o’ la dos y así hasta llegar al último caracter.

El método indexOf() nos va a decir, en que posición empieza una subcadena (substring) de otro String.

¿Qué puede ser una subcadena del String «Programación Fácil»? Pues desde un caracter cualquiera como ‘P’ o bien una porción como «Fácil».

A este método le pasaremos una subcadena como «Fácil» y nos dirá en que posición empieza en el índice:

String texto1 = "Programación Fácil";
int valorIndice = texto1.indexOf("Fácil");
        
System.out.print(valorIndice);

Resultado en la consola

13

Puede que te preguntes, si estamos trabajando con Strings, porque la variable ‘valorIndice’ tiene que ser de tipo int.

Esto es porque aunque como argumento para indexOf() pasemos un String, el resultado que devuelve y almacena en ‘valorIndice’ es un valor de tipo int (13).


El método lastIndex()

El método lastIndexOf() devuelve la posición de la última ocurrencia.

String texto1 = "Programación Fácil";
int valorIndice = texto1.lastIndexOf("a");

System.out.print(valorIndice);

La primera «a» que encuentra en el String es la de la posición 5, la última la 7 (eso es lo que devuelve).

La «á» con acento no la tiene en cuenta, la considera un caracter diferente.

Resultado en la consola

7

Con este método, puedes utilizar más de un caracter. Por ejemplo, para obtener la posición inicial del substring «hola»:

String texto1 = "hola, este String tiene más de un hola. Está hecho para buscar la última ocurrencia de la palabra hola. Por lo tanto, encontrará la posición de este hola.";
int valorIndice = texto1.lastIndexOf("hola");

System.out.print(valorIndice);

El último «hola», aparece a partir de la posición 149.

Resultado en la consola

149

El método replace()

El método replace() reemplaza todas las ocurrencias de una subcadena con otra subcadena. Se esperan dos argumentos en la llamada. Sencillamente, se busca el primer valor y se reemplaza en todas las ocurrencias.

String texto1 = "hola, este String tiene más de un hola. Está hecho para buscar la última ocurrencia de la palabra hola. Por lo tanto, encontrará la posición de este hola.";
String nuevoTexto = texto1.replace("hola", "adiós");

System.out.print(nuevoTexto);

Resultado en la consola

adiós, este String tiene más de un adiós. Está hecho para buscar la última ocurrencia de la palabra adiós. Por lo tanto, encontrará la posición de este adiós.

Otros métodos para Strings en Java

Hay una infinidad de métodos para trabajar con Strings en Java, de modo que vamos a ver unos cuantos más de los más utilizados y continuaremos con más temas en el curso.

El método chatAt()

El método charAt() de Java, devuelve un caracter mediante una posición de String pasada como argumento.

String texto1 = "Programación Fácil";
char caracter = texto1.charAt(10);
        
System.out.print(caracter);

Resultado en la consola

ó

El método substring()

El método substring() devuelve una subcadena que empieza desde la posición indicada como argumento.

String texto1 = "Programación Fácil";
String caracter = texto1.substring(13);
        
System.out.print(caracter);

Resultado en la consola

Fácil

El método length()

El método length() nos va a permitir obtener la longitud del índice de un String, es decir, el número de caracteres totales que tiene.

String texto1 = "Programación Fácil";
int longitud = texto1.length();

System.out.print(longitud);

Si length() devuelve 18, quiere decir que el String tiene un total de 18 caracteres. No te confundas con el índice, que va del 0 al 17 (18 caracteres).

Resultado en la consola

18

El método toLowerCase()

El método toLowerCase() devuelve el valor del String completamente en minúsculas.

String texto1 = "Programación Fácil";
String minusculas = texto1.toLowerCase();

System.out.print(minusculas);

Resultado en la consola

programación fácil

El método toUpperCase()

El método toUpperCase() hace todo lo contrario, devuelve todo el String en mayúsculas.

String texto1 = "Programación Fácil";
String mayusculas = texto1.toUpperCase();

System.out.print(mayusculas);

Resultado en la consola

PROGRAMACIÓN FÁCIL

Hasta aquí este capítulo sobre los Strings en Java. Nos vemos muy pronto en el siguiente capítulo.

No te pierdas nada sobre el curso Máster en Java.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Trending