Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Conjunto de Strings, Método Equals() | String
Principios Básicos de Java
course content

Contenido del Curso

Principios Básicos de Java

Principios Básicos de Java

1. Iniciando
2. Tipos Básicos, Operaciones
3. Loops
4. Arrays
5. String

book
Conjunto de Strings, Método Equals()

El Método equals()

Este capítulo proporciona una breve visión general del método equals(). Este método se utiliza para comparar objetos y se usa comúnmente con objetos String. Examinemos un ejemplo en el que se crean dos variables de string idénticas y se comparan utilizando "==":

java

Main

copy
123456789
package com.example; public class Main { public static void main(String[] args) { String first = new String("string"); String second = new String("string"); System.out.println(first == second); } }

En la respuesta, obtenemos "false", pero ¿por qué? Los valores de las dos variables de string son iguales e iguales a "string". Es porque "==" compara las referencias a los objetos en memoria, no los valores reales. Nuestros objetos están fuera del string pool.

String Pool

Es un área en la memoria heap que se asigna cuando se crean objetos string. Si creamos un objeto String con el valor "string" y luego creamos otro objeto String con el mismo valor, ambos objetos harán referencia al mismo objeto en memoria, que se encuentra en el string pool.

Entonces, ¿por qué hemos obtenido "false" en nuestro caso? Porque nos hemos saltado la reserva de strings al crear objetos utilizando la sintaxis
String first = new String("string");. Cuando creamos un objeto String utilizando una sintaxis diferente, como String first = "string";, se colocará en la reserva de strings.

Veamos un ejemplo de código:

java

Main

copy
1234567891011
package com.example; public class Main { public static void main(String[] args) { String first = "string"; String second = "string"; String third = new String("string"); System.out.println("Result of comparing first and second: " + (first == second)); System.out.println("Result of comparing first and third: " + (first == third)); } }

Veamos un diagrama que explica cómo funciona y qué objetos hay en el String Pool.

¿Cómo se comparan los valores de las strings que se encuentran en el String Pool y las que están fuera de él? Para ello, Java proporciona el método equals, que compara los valores de nuestros objetos String en lugar de sus referencias. Veamos un ejemplo de código en el que comparamos strings utilizando el método equals en lugar de ==.

java

Main

copy
1234567891011
package com.example; public class Main { public static void main(String[] args) { String first = "string"; String second = "string"; String third = new String("string"); System.out.println("Result of comparing first and second: " + (first.equals(second))); System.out.println("Result of comparing first and third: " + (first.equals(third))); } }

Ahora podemos ver que tenemos la comparación correcta.

Nota

Utiliza el método equals() en lugar de == cuando trabajes con String.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 5. Capítulo 7
We're sorry to hear that something went wrong. What happened?
some-alt