Comparar cadenas en Scala

Suraj P 30 enero 2023
  1. Compara cadenas usando el método equals() en Scala
  2. Compara cadenas usando el operador == en Scala
  3. Igualdad en Java y Scala
Comparar cadenas en Scala

En este artículo, aprenderemos cómo comparar dos cadenas en el lenguaje de programación Scala.

Dos cadenas se consideran iguales si tienen la misma secuencia de caracteres. Ahora, veamos diferentes enfoques en Scala para comparar cadenas.

Compara cadenas usando el método equals() en Scala

En Scala, la clase String tiene el método equals() para comprobar la igualdad de dos cadenas.

Sintaxis:

string_one.equals(string_two)

La función devuelve true si tanto string_one como string_two son iguales.

Código de ejemplo:

object MyClass {

    def main(args: Array[String]) {

        val one = "Tony"
        val two = "Tony"
        val ans = one.equals(two)
        println(ans)

    }
}

Producción :

true

Una cosa a tener en cuenta es que el método equals() distingue entre mayúsculas y minúsculas, lo que significa que tony y Tony se tratan de manera diferente. Para superar esto, tenemos el método equalsIgnoreCase() en la clase String, que podemos usar.

Código de ejemplo:

object MyClass {

    def main(args: Array[String]) {

        val one = "Tony"
        val two = "toNy"
        val ans = one.equalsIgnoreCase(two)
        println(ans)

    }
}

Producción :

true

Nota: Debemos asegurarnos de que la cadena que llama a la función equals() de la clase String (como la cadena one en el código anterior) no debe ser null; de lo contrario, obtendremos una NullPointerException.

Compara cadenas usando el operador == en Scala

Podemos usar el método == para comparar dos cadenas en Scala.

Sintaxis:

string_one == string_two

El método == comprueba la igualdad de string_one y string_two. Devuelve true si ambas cadenas son iguales; en caso contrario, devuelve false.

Código de ejemplo:

object MyClass {

    def main(args: Array[String]) {

        val one = "tony"
        val two = "tony"
        if(one==two)
           println(true)
        else
        println (false)

    }
}

Producción :

true

Si sabemos que las cadenas distinguen entre mayúsculas y minúsculas, una de las principales ventajas de usar el método == en lugar de equals() es que no arrojará NullPointerException incluso si una de las cadenas es null.

Código de ejemplo:

object MyClass {

    def main(args: Array[String]) {

        val one = "tony"

        if(one == null)
           println(true)
        else
        println (false)

    }
}

Producción :

false

En el back-end, el método == primero busca valores null, luego llama al método equals() con el primer objeto de cadena para verificar su igualdad. Por esta razón, el método == no compara cadenas distinguiendo entre mayúsculas y minúsculas.

Código de ejemplo:

object MyClass {

    def main(args: Array[String]) {
        val one = "tony"
        val two = "TONY"
        if(one == two)
           println(true)
        else
        println (false)

    }
}

Producción :

false

Para superar esta situación de diferenciación entre mayúsculas y minúsculas, podemos convertir ambas cadenas a mayúsculas o minúsculas y luego compararlas.

Código de ejemplo:

object MyClass {

    def main(args: Array[String]) {
        val one = "tony"
        val two = "TONY"
        if(one.toLowerCase() == two.toLowerCase())
           println(true)
        else
        println (false)

    }
}

Producción :

true

En el código anterior, hemos convertido ambas cadenas a minúsculas usando el método toLowerCase(), y luego usamos el método == para compararlas.

Igualdad en Java y Scala

Java y Scala tienen diferentes definiciones cuando se trata de igualdad. Java tiene principalmente dos formas de verificar la igualdad: una es usar el operador ==, que verifica estrictamente la igualdad de referencia, y otra es el método equals() que se puede anular para verificar el contenido de la objetos.

En Scala, el método == se puede usar para comparar cualquier tipo, lo que significa que a==b devolverá true si se refieren al mismo objeto o contienen el mismo valor. Y en Scala, el método == es un método final definido en cualquier clase.

Autor: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub

Artículo relacionado - Scala String