Strings
Introducción
Los Strings en Java son objetos que representan secuencias de caracteres. Son una de las clases más comunes en Java y se utilizan en una amplia variedad de situaciones, como almacenar y manipular texto.
Hay varias formas de crear un objeto String en Java. Una forma es usando el operador "+" para concatenar varios Strings o caracteres. También puedes crear un String a partir de un arreglo de caracteres o de una porción de otro String.
String s1 = "Hello";
String s2 = " World";
String s3 = s1 + s2; // "Hello World"
char[] chars = {'H', 'e', 'l', 'l', 'o'};
String s4 = new String(chars);
String s5 = new String(s1, 0, 3); // "Hel"
Java proporciona un gran número de métodos para manipular y modificar objetos String. Por ejemplo, el método length() devuelve el número de caracteres en un String, el método substring() devuelve una porción de un String, el método toUpperCase() convierte todos los caracteres de un String a mayúsculas, y el método replace() reemplaza una porción de un String con otra.
String s = "Hello World";
int length = s.length(); // 11
String sub = s.substring(0, 5); // "Hello"
String upper = s.toUpperCase(); // "HELLO WORLD"
String replaced = s.replace("World", "Java"); // "Hello Java"
También se pueden comparar dos objetos string mediante el metodo equals() y equalsIgnoreCase() el primero compara si son iguales caracter a caracter y el segundo compara si son iguales ignorando las mayusculas y minusculas.
Los Strings son inmutables en Java, lo que significa que una vez creados, no se pueden modificar. Si deseas modificar un String, deberás crear un nuevo String con los cambios deseados. Sin embargo existen las clases StringBuilder y StringBuffer que son mutables y pueden ser modificadas.
Comparación
La comparación de strings en Java se realiza mediante el método equals() o equalsIgnoreCase() de la clase String. El método equals() devuelve true si dos cadenas tienen los mismos caracteres en el mismo orden, y false en caso contrario. El método equalsIgnoreCase() funciona de la misma manera pero ignorando las mayusculas y minusculas.
Por ejemplo:
String s1 = "hello";
String s2 = "world";
String s3 = "Hello";
System.out.println(s1.equals(s2)); // false
System.out.println(s1.equals(s3)); // false
System.out.println(s1.equalsIgnoreCase(s3)); // true
Es importante tener en cuenta que el método == no se utiliza para comparar strings en Java, ya que compara si dos variables hacen referencia al mismo objeto en la memoria, no si los contenidos son iguales.
String s1 = "hello";
String s2 = "hello";
String s3 = new String("hello");
System.out.println(s1 == s2); // true
System.out.println(s1 == s3); // false
En el primer caso s1 y s2 apuntan al mismo objeto en memoria, por eso el resultado es true, mientras que en el segundo caso s1 y s3 apuntan a dos objetos diferentes en memoria, por eso el resultado es false.
Es recomendable siempre utilizar el método equals() o equalsIgnoreCase() para comparar strings en Java.