2012-03-14 10 views
8

coincide con: Verificará si la cadena completa ingresada es igual al valor presente en el objeto de cadena.Diferencia entre matches e igualIgnoreCase o igual en la clase de cadena

igualIgnoreCase: Ignorando el caso, verifica si la cadena ingresada es igual al valor presente en el objeto de cadena.

es igual a: distingue entre mayúsculas y minúsculas y comprueba si la cadena ingresada es igual al valor presente en el objeto de cadena.

Esto es lo que sé sobre los métodos, presentes en la clase String.

¿Hay alguna otra diferencia (¿me falta alguna diferencia valiosa)?

Si no hay diferencias, entonces ¿por qué no se puede eliminar el método de las coincidencias de la clase String, ya que la funcionalidad que proporciona se puede lograr utilizando los otros métodos mencionados anteriormente, de forma adecuada.

+0

[partidos] (http: // www .javamex.com/tutorials/regular_expressions/string_matches.shtml) funciona en expresiones regulares. – Lion

+0

revise esta [pregunta] (http://stackoverflow.com/questions/2483029/equals-and-equalsignorecase) – Rakesh

+0

Lo siento, pero no estoy confundido entre equals and equalsIgnoreCase –

Respuesta

17

Hay una gran diferencia: matches comprueba la coincidencia de un String con un patrón de expresión regular, no con la misma cadena. No se deje engañar por el hecho de que recibe un String como argumento.

Por ejemplo:

"hello".equals(".*e.*"); // false 
"hello".matches(".*e.*"); // true 
+0

¿Me puede dar un ejemplo? Soy incapaz de hacer la diferencia. –

+0

¿Qué es. * Que está utilizando aquí? –

+1

Este es un comodín. Eche un vistazo aquí: http://docs.oracle.com/javase/tutorial/essential/regex/ – MByD

10

La diferencia clave es que coincide con un matches expresiones regulares mientras que iguales coincide con una cadena específica.

System.out.println("hello".matches(".+")); // Output: true 
System.out.println("hello".equals(".+"));  // Output: false 
System.out.println("wtf?".matches("wtf?")); // Output: false 
System.out.println("wtf?".equals("wtf?")); // Output: true 

le sugiero que eche un vistazo a lo que es una expresión regular http://en.wikipedia.org/wiki/Regular_expression

+0

¿Puede hablarme de mí. + ¿Qué está sucediendo en tiempo de ejecución? –

+0

¿Has leído qué es una expresión regular primero? –

0

matches devuelve verdadero si la cadena coincide con una expresión regular, por lo tanto, no debe ser removido de la clase String.

1

Esto es lo que obtuve de la documentación ...

partidos (String regex): indica si o no esta cadena coincide con la expresión regular dada

es igual a (String Object): Compara esta cadena al objeto especificado. El resultado es verdadero si y solo si el argumento no es nulo y es un objeto String que representa la misma secuencia de caracteres que este objeto.

es igual aIgnoreCase (String anotherString): Compara esta cadena con otra serie Ignorando las consideraciones de la caja. Dos cadenas se consideran iguales ignorando el caso si son de la misma longitud y los caracteres correspondientes en las dos cadenas son iguales ignorando el caso.

0

partidos() usados ​​para la verificación de ---- si la cadena dada coincidencias con regexpression especificado

ex;. Cadena s = "humbapumpa jim"; assertTrue (s.matches (". (jim | joe)... "));

equals() para simplemente comprobar la cadena dada con la cadena especificada como coincidencia exacta equalsIgnoreCase (---) ignorará el mayúsculas y minúsculas

Cuestiones relacionadas