Hola a todos, hoy os enseñare como usar el método compareTo de String.
El método compareTo se usa para comparar dos cadenas, indicando que cadena es mayor que otra. Esto es un ejemplo del método, cadena1.compareTo(cadena2);
Esto es lo que puede devolver:
- Número positivo: la cadena 1 es mayor que la cadena 2.
- 0: las cadenas son iguales.
- Número negativo: la cadena 1 es menor que la cadena 2.
Recuerda que no sigue el alfabeto original sino según la tabla ASCII, es decir, que a es menor que z.
Veamos un ejemplo:
public class PruebaApp { public static void main(String[] args) { String cadena1="americano"; String cadena2="coche"; System.out.println(cadena1.compareTo(cadena2)); } }
En el ejemplo anterior, devolvera -2 ya que «americano» es menor que «coche». En realidad, es como si comparase entre «a» y «c».
Cuando las dos cadenas empiezan por los mismos caracteres y solo se diferencian en algún carácter, es ese carácter el que comparan. Veamos un ejemplo:
public class PruebaApp { public static void main(String[] args) { String cadena1="moto"; String cadena2="mota"; System.out.println(cadena1.compareTo(cadena2)); } }
En este caso, se compara el ultimo carácter, donde «moto» es mayor que «mota», es decir, que devuelve un numero mayor que cero.
Este método distingue entre mayúsculas y minúsculas, si queremos que no lo haga podemos usar el método compareToIgnoreCase(cadena). Veamos un ejemplo:
public class PruebaApp { public static void main(String[] args) { String cadena1="moto"; String cadena2="MOTO"; System.out.println(cadena1.compareToIgnoreCase(cadena2)); } }
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Me ha servido mucho para entender como funciona «compareTo», ya que nos explicaron de esta manera…
C
ompare
:
o
Compara 2 cadenas y retorna un valor numérico, cero si son iguales,
un númer
o mayor que cero si la primera cadena es mayor a la
segunda, un número menor que cero si la primera es menor a la
segunda.
o
Ejemplo:
String cad1 =
“
1234
”
, cad2 =
“
1334
”
;
i
nt
valor
= cad1.compareTo(cad2);
if(
valor == 0){
System.out.println(
“
Son
iguales
”
);
}else if(
valor < 0
){
System.out.println(
“
Cadena 1
es menor a Cadena 2
”
);
}else{
System.out.println(
“
Cadena 1 es mayor a Cadena 2
”
);
}
// la impresión dirá Cadena 1 es menor a Cadena 2.
para mi, eso es poco comprensible.
Hola Amigos , quisiera saber porque en «moto» y «MOTO» correrlo me muestra 32 , cual es la diferencia en que este escrito en miniscula y mayuscula
Podrias mostrarme como es la implementacion del metodo compareto??
https://www.discoduroderoer.es/comparacion-de-objetos-en-java/
Ahi tienes para objetos o te refieres para cadenas?
.compareToIgnoreCase()
me marca error
hola buenas noches, estoy tratando de ordenar un arreglo String de manera descendente, es decir [z] [v] [p] [o] [d] [e] [a] pero no se donde usar el compareTo…
¿podrías ayudarme?
este es código que estoy usando
while(entrar){
entrar=false;
for(i=1;i=0 && aux.compareTo(may[j])){
may[j+1]=may[j];
j–;
}
may[j+1]=aux;
}
}
En la práctica para que sirve utilizar el método compareTo()
En la práctica para queésirve utilizar el método compareTo() ????