• Domingo 22 de Diciembre de 2024, 21:31

Autor Tema:  Como Comparar Cadenas?  (Leído 1988 veces)

sergiotarrillo

  • Moderador
  • ******
  • Mensajes: 1059
    • Ver Perfil
    • http://sergiot2.com/blog
Como Comparar Cadenas?
« en: Martes 20 de Septiembre de 2005, 06:00 »
0
Holas!

Generalmente comparo cadenas solo con ==, o con !=.

Pero hay un metodo CompareTo.

Ya, ahora la pregunta cual es mejor, ventajas desventajas de uno respecto a otro.

Saludos,


Sergio Tarrillo
Blog]miBlog[/url]

No me visiten!

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Como Comparar Cadenas?
« Respuesta #1 en: Martes 20 de Septiembre de 2005, 08:25 »
0
Hola,

tal y como has dicho, la comparacion de Strings se puede realizar con los operadores == y != o con el metodo compareTo(); pero tambien se puede realizar con el metodo Equals().
La diferencia entre ellos:

==, != y Equals() devuelven un booleano segun el caso (sea igual o distinto y el operador usado)

compareTo() devuelve un int. Creo que devuelve 0 (cero) cuando las cadenas son iguales; > 0 (mayor que cero) cuando el primer string es mas grande (alfabeticamente) que el segundo; y < 0 (menor que cero) cuando el primer string es mas pequeño (alfabeticamente) que el segundo.


En cuanto a ventajas y desventajas... no lo se. YO casi nunca he utilizado compareTo(), porque luego siempre tengo que comparar el int que me devuelve para saber si los strings eran iguales o no. Lo que se me ocurre es que puede servir para ordenar alfabeticamente una serie de strings.

Espero haberte aclarado algo.
Saludos
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]

sergiotarrillo

  • Moderador
  • ******
  • Mensajes: 1059
    • Ver Perfil
    • http://sergiot2.com/blog
Re: Como Comparar Cadenas?
« Respuesta #2 en: Martes 20 de Septiembre de 2005, 08:57 »
0
Holas Güorker!

Gracias, exacmente quería conocer eso, cual usan más?, y porque, si hay otros casos los invito unirse al post.

Saludos,


Sergio Tarrillo
Blog]miBlog[/url]

No me visiten!

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Como Comparar Cadenas?
« Respuesta #3 en: Martes 20 de Septiembre de 2005, 14:50 »
0
Hola de nuevo,

Yo lo que mas utilizo son los operadores == y !=.

El porque.... supongo que es porque es mas facil que escribir Equals() y asi se puede comparar un string con null (aunque no se si con Equals() se puede o no).

Asi una comparacion muy tipica que suelo utilizar es asi:
Código: Text
  1.  
  2. if(texto != null && texto != &#34;&#34;)
  3. {
  4.   ....
  5. }
  6.  
  7.  

Saludos
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Como Comparar Cadenas?
« Respuesta #4 en: Martes 20 de Septiembre de 2005, 15:25 »
0
opino = que Güorker
lo qu sucede es que en C# el tipo estrincg es un tipo primitivo, por eso se puede usar el  operador = e incluso hacer un swicth con un string, cosas que en lenguajes como java no se pueden hacer por que string no es primitivo.

Asi que creo que el método equals debe existir más porque a los que vienen de java se les hara mas familiar o porque es posible que el objeto string implemente una sobrecarga del operador = y el == y el != para poderlo utilizar directamente, y algunas de estas sobrecargas se sirven del metodo equals.

Y lo del compareTo es por lo mismo según parece (o segun creo mas bien),  ya que seguro se debio implementar alguna de las interfaces icomparator o icomparable para poder manejar todas las diferentes variantes de conversion del metodo string.  :comp:
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io