Sobes.tech
Junior

Cuéntame sobre la clase String en el lenguaje de programación que conoces.

sobes.tech AI

Respuesta de la IA

En el contexto de Java, String es una clase inmutable que representa una secuencia de caracteres. Los objetos String se crean, por ejemplo, utilizando literales o el operador new.

Características:

  • Inmutabilidad: Después de crear un objeto String, su contenido no puede ser modificado. Cualquier operación que parezca modificar la cadena (por ejemplo, concatenación) en realidad crea una nueva cadena. Esto garantiza la seguridad en el trabajo con hilos y tablas hash.
  • Pool de cadenas: Para literales de cadenas, la JVM de Java utiliza un área de memoria especial llamada pool de cadenas. Si ya existe una cadena con el mismo contenido en el pool, la JVM usa una referencia a ese objeto en lugar de crear uno nuevo. Esto optimiza el uso de memoria.
  • Sobrecarga del operador +: El operador + para cadenas se usa para concatenar.
  • Muchos métodos útiles: La clase String proporciona una amplia gama de métodos para trabajar con cadenas: obtener longitud (.length()), comparación (.equals(), .equalsIgnoreCase()), búsqueda de subcadenas (.contains(), .indexOf()), extracción de subcadenas (.substring()), reemplazo de caracteres (.replace()), conversión a mayúsculas/minúsculas (.toUpperCase(), .toLowerCase()), eliminación de espacios (.trim()) y otros.

Ejemplos:

Creación de cadenas:

// Creación usando literal - se coloca en el pool de cadenas
String s1 = "Hello";

// Creación usando new - se crea un nuevo objeto fuera del pool
String s2 = new String("World");

// Concatenación de cadenas
String s3 = s1 + " " + s2;

Ejemplo de inmutabilidad:

String original = "abc";
String modified = original.concat("def"); // Se crea una nueva cadena

// original sigue siendo "abc"
System.out.println(original); // Salida: abc
// modified es una nueva cadena "abcdef"
System.out.println(modified); // Salida: abcdef

Métodos importantes:

String text = "  Example String  ";

// Longitud de la cadena
int length = text.length(); // 18

// Comparación de cadenas
boolean isEqual = text.equals("  Example String  "); // true

// Comparación sin tener en cuenta mayúsculas/minúsculas
boolean isEqualIgnoreCase = text.equalsIgnoreCase("  example string  "); // true

// Búsqueda de subcadena
boolean contains = text.contains("String"); // true
int index = text.indexOf("String"); // 10

// Extracción de subcadena
String sub = text.substring(10, 16); // String

// Reemplazo de caracteres
String replaced = text.replace(" ", "-"); // --Example-String--

// Eliminación de espacios en los extremos
String trimmed = text.trim(); // Example String

String se usa ampliamente en Java para representar información textual y es una clase fundamental para el procesamiento de cadenas.