martes, 10 de septiembre de 2024

■ Métodos de String

Cuando trabajamos con cadenas de texto en variables del tipo String, Java pone a nuestra disposición una serie de funciones predefinidas propias de la clase String, estas funciones nos permiten hacer diferentes cosas con las cadenas de texto como hacer comparaciones, manipular el texto u obtener información de él.

Nota:
Un String se viene comportando como un arreglo de caracteres, donde cada caracter que lo conforma es como un elemento del arreglo, por ejemplo si tenemos el siguiente String:

String frase = "Hola mundo";

Podemos decir que la letra "H" está en la primera posición, la letra "o" en la segunda, la letra "l" en la tercera y así sucesivamente. Dado que en Java los indices inician en 0, la primera posición sería la 0.

Gráficamente se vería así:

Aclarado lo anterior y considerando que nuestro String es la variable "frase" antes mencionada, comencemos con los métodos.


Principales Métodos de String

• charAt(indice): Devuelve el caracter de la posición del String que le indiquemos en los parentesis.

char c = frase.charAt(3);
A la variable c se le asignará el caracter de la posición 3, es decir la letra "a".

Para convertir de char a String se usa Character.toString(char), ejemplo:
String cadena = Character.toString('a');

O si tomamos un char de un String
String cadena = Character.toString(frase.charAt(0));

• compareTo(String): Devuelve 0 si ambos String son iguales, devuelve diferente de 0 si los String no son iguales.

System.out.println(frase.compareTo("Hola mundo")); // Devolverá 0
System.out.println(frase.compareTo("Hola mund")); // Devolverá 1
System.out.println(frase.compareTo("Hola mundos")); // Devolverá -1
System.out.println(frase.compareTo(frase)); // Devolverá 0

También lo podríamos aplicar en un if así:

if (frase.compareTo("Otra frase") == 0) {
    System.out.println("Las frases son iguales);
} else {
    System.out.println("Las frases son diferentes");
}

• copareToIgnoreCase(String): Devuelve 0 si ambos String son iguales, devuelve diferente de 0 si no son iguales. Es similar al anterior pero sin distinguir mayúsculas y minúsculas, es decir, para este método "Hola mundo" y "HOLA MUNDO" son iguales.

• concat(String): Concatena dos String.

String texto = " buenos días";
System.out.println(frase.concat(texto));
Imprimirá "Hola mundo buenos días"

• contentEquals(String): Devuelve true si ambos String son iguales o false si son diferentes. (Similar a compareTo pero devolviendo valores boleanos)

System.out.println(frase.contentEquals("Hola m")); // Devolverá false
System.out.println(frase.contentEquals("Hola mundo")); // Devolverá true
System.out.println(frase.contentEquals(frase)); // Devolverá true

Aplicado en un if:

if (frase.contentEquals("Hola mundo") == true) {
    System.out.println("Las frases son iguales");
} else {
    System.out.println("Las frases son diferentes");
}

• endsWith(String): Verifica si el String termina con la cadena recibida, si es así devuelve true y si no devuelve false.

System.out.println(frase.endsWith("undo")); // Regresará true
System.out.println(frase.endsWith("hola")); // Regresará false

• equals(String): Verifica si la cadena es igual al String recibido.

System.out.println(frase.equals("Hola mundo")); // Devolverá true
System.out.println(frase.equals("Hola")); // Devolverá false

• equalsIgnoreCase(String): Verifica si la cadena es igual al String recibido sin distinguir mayúsculas ni minúsculas.

System.out.println(frase.equals("Hola mundo")); // Devolverá true
System.out.println(frase.equals("HOLA MUNDO")); // Devolverá true
System.out.println(frase.equals("Hola")); // Devolverá false

• indexOf(char): Devuelve el índice o la posición del String de la primer coincidencia con el char especificado, si el char no está devuelve -1.

System.out.println(frase.indexOf('m')); // Devolverá 5
System.out.println(frase.indexOf('o')); // Devolverá 1
System.out.println(frase.indexOf('z')); // Devolverá -1

• indexOf(char, int): Devuelve la posición del String de la primer coincidencia con el char especificado, a partir de la posición del String indicada, si no se encuentra el char devuelve -1.

System.out.println(frase.indexOf('o', 1)); // Devolverá 1
System.out.println(frase.indexOf('o', 5)); // Devolverá 9
System.out.println(frase.indexOf('m', 6)); // Devolverá -1

• lastIndexOf(char): Devuelve la posición del String de la última coincidencia con el char especificado, si no está el caracter devuelve -1. (Similar al anterior pero busca del final de la cadena hacia adelante).

System.out.println(frase.lastIndexOf('o'); // Devolverá 9
System.out.println(frase.lastIndexOf('m')); // Devolverá 5
System.out.println(frase.lastIndexOf('z')); // Devolverá -1

• lastIndexOf(char, int): Devuelve la posición del String de la última coincidencia el char especificado a partir de la posición indicada leyendo el String de atrás para adelante, si no encuentra el caracter devuelve -1.

System.out.println(frase.lastIndexOf('o', 5)); // Devolverá 1
System.out.println(frase.lastIndexOf('o', 3)); // Devolverá 1
System.out.println(frase.lastIndexOf('m', 4)); // Devolverá -1
System.out.println(frase.lastIndexOf('z', 6)); // Devolverá -1

• length(): Devuelve la longitud del String.

System.out.println(frase.length());  // Devolverá 10

Aplicado en un if

if (frase.length() < 8) {
    System.out.println("La frase debe tener al menos 10 caracteres);
} else {
    System.out.println("La frase cumple con el tamaño");
}

• matches(String): Devuelve true si el String coincide con el patrón String indicado entre paréntesis o false si no coindice. (El patrón debe tener cierto formato)

El siguiente patrón dice:
    La frase debe contener algo "(.*)+"
    Luego la palabra "mun"
    Luego algo más "+(.*)"

String patron = "(.*)+mun+(.*);
System.out.println(frase.matches(patron)); // Devolverá true

Explicación: El patrón dice que la frase debe contenter cualquier texto al inicio, luego los caracteres "mun" y luego cualquier cosa más. Como la frase "Hola mundo" contiene los caracteres "mun" y antes y después de éstos algo más, se cumple la condición. 

Antes de "mun" están los caracteres "Hola " y después de "mun" están los caracteres "do". → "Hola mundo"

Si quisieramos evaluar si el String tiene formato de correo electrónico, el patrón quedaría así:

String patron = "(.*)+@(.*)+.com";
String correo1 = "nombre@dominio.com";
String correo2 = "nombre@com";
System.out.println(correo1.matches(patron)); // Devolverá true
System.out.println(correo2.matches(patron)); // Devolverá false

• replace(char, char): Reemplaza el primer caracter especificado si lo encuentra en el String por el segundo caracter dado.

String nuevaFrase = frase.replace('o', 'O');
System.out.println(nuevaFrase); // Mostrará "HOla mundO"

• startsWith(String): Verifica si el String inicia con la cadena String recibida, si es así devuelve true, si no devuelve false.

System.out.println(frase.startsWith("Hol"); // Devolverá true
System.out.println(frase.startsWith("hol"); // Devolverá false

• startsWith(String, int): Verifica si el String inicia con la cadena String recibida a partir de la posición indicada, si se cumple devuelve true, si no se cumple devuelve false.

System.out.println(frase.startsWith("mun", 5)); // Devolverá true
System.out.println(frase.startsWith("mun", 3)); // Devolverá false

• subSequence(int inicio, int tamaño): Devuelve una secuencia de caracteres a partir de la posición del String inicial y final indicada.

System.out.println(frase.subSequence(0, 4)); // Devolverá "Hola"
System.out.println(frase.subSequence(5, 10)); // Devolverá "mundo"

• substring(int): Devuelve una copia del String a partir de la posición indicada y hasta el final de la cadena.

System.out.println(frase.substring(2)); // Devolverá "la mundo"

• substring(int, int): Devuelve un segmento del String a partir de la posición indicada y hasta la posición final indicada.

System.out.println(frase.substring(2,7)); // Devolverá "la mun"

• toCharArray(): Convierte el String en un arreglo de caracteres.

char[] caracteres;
caracteres = frase.toCharArray();

• toLowerCase(): Convierte el String en minúsculas.

System.out.println(frase.toLowerCase()); // Devolverá "hola mundo"

• toUpperCase(): Convierte el String en mayúsculas.

System.out.println(frase.toUpperCase()); // Devolverá "HOLA MUNDO"

• toString(): Convierte el String en String. Este método junto con Integer sirve para convertir datos numéricos a caracteres.

int num = 123;
String cadena;
cadena = Integer.toString(num);

• trim(): Devuelve el string eliminando los espacios que tenga al inicio de la cadena.

String cadena = "     Hola mundo";
System.out.println(cadena.trim()); // Devolverá "Hola mundo"

• valueOf(variable): Devuelve la representación String del contenido de la variable que se le pase.

char[] c = {'a', 'b', 'c'};
int x = 10;
double y = 123.55;
float z = 3.14f;
System.out.println(String.valueOf(c)); // Devolverá "abc"
System.out.println(String.valueOf(x)); // Devolverá "10"
System.out.println(String.valueOf(y)); // Devolverá "123.55"
System.out.println(String.valueOf(z)); // Devolverá "3.14"


Existen más métodos para String pero esos son los principales.

No hay comentarios:

Publicar un comentario