2012-03-14 14 views
8

corrisponde a: Verificherà se la stringa completa immessa è uguale al valore presente nell'oggetto stringa.Differenza tra le corrispondenze e uguale a IgnoraCase o uguale nella classe di stringhe

equalsIgnoreCase: Ignorando il caso, controlla se la stringa immessa è uguale al valore presente nell'oggetto stringa.

uguale a: sensibile al maiuscolo/minuscolo e controlla se la stringa immessa è uguale al valore presente nell'oggetto stringa.

Questo è quello che so sui metodi, presenti nella classe String.

Ci sono altre differenze (mi mancano differenze di valore)?

Se non ci sono differenze, il motivo per cui le corrispondenze di cant non possono essere rimosse dalla classe String, poiché la funzionalità che offre può essere ottenuta utilizzando gli altri metodi sopra menzionati, in modo appropriato.

+0

[risultati] (http: // www .javamex.com/tutorials/regular_expressions/string_matches.shtml) funziona su espressioni regolari – Lion

+0

controlla questa [domanda] (http://stackoverflow.com/questions/2483029/equals-and-equalsignorecase) – Rakesh

+0

Scusa ma non sono confuso tra equals and equalsIgnoreCase –

risposta

17

C'è una grande differenza - matches controlla la corrispondenza di un String in un modello di espressione regolare, non nella stessa stringa. Non essere fuorviato dal fatto che riceve un String come argomento.

Ad esempio:

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

Puoi farmi un esempio? Sono incapace di fare la differenza. –

+0

Che cos'è. * Che stai usando qui ?? –

+1

Questo è un carattere jolly. Dai un'occhiata qui: http://docs.oracle.com/javase/tutorial/essential/regex/ – MByD

10

La differenza fondamentale è che matches corrisponde a una delle espressioni regolari, mentre eguali corrisponde a una stringa specifica.

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 

io suggerisco di dare un'occhiata a ciò che un'espressione regolare è http://en.wikipedia.org/wiki/Regular_expression

+0

Puoi dirmi per favore. + Cosa sta succedendo in fase di esecuzione? –

+0

Hai letto cosa è prima un'espressione regolare? –

0

matches restituisce vero se la stringa corrisponde a un'espressione regolare, di conseguenza, non dovrebbe essere rimosso dalla classe String.

1

Questo è quello che ho ottenuto dalla documentazione ...

partite (String regex): Indica se questa stringa corrisponde all'espressione regolare data

uguale (String Object): confronta questo stringa sull'oggetto specificato. Il risultato è true se e solo se l'argomento non è null ed è un oggetto String che rappresenta la stessa sequenza di caratteri di questo oggetto.

equalsIgnoreCase (String anotherString): confronta questa stringa con un'altra stringa ignorando le considerazioni sul caso. Due stringhe sono considerate caso di ignoranza uguale se hanno la stessa lunghezza e i caratteri corrispondenti nelle due stringhe sono uguali a ignorare il caso.

0

partite() utilizzati per la verifica ---- se la stringa data corrisponde al regexpression specificato

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

equals() per solo controllando la stringa data con la stringa specificata come corrispondenza esatta equalsIgnoreCase() --- dovrebbero ignorare il case sensitive