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á -1System.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");
}
System.out.println(frase.indexOf('o')); // Devolverá 1
System.out.println(frase.indexOf('z')); // Devolverá -1
System.out.println(frase.indexOf('m', 6)); // Devolverá -1
System.out.println(frase.lastIndexOf('z')); // Devolverá -1
System.out.println(frase.lastIndexOf('m', 4)); // Devolverá -1System.out.println(frase.lastIndexOf('z', 6)); // Devolverá -1
• 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á trueAplicado 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á trueSystem.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('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á 9System.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á 5System.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á 1System.out.println(frase.lastIndexOf('m', 4)); // 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