Ho il seguente codice diPerché "==" a volte funziona con String.trim?
public static void main(String... args) {
String s = "abc";
System.out.println(s.hashCode());
String s1 = " abc ";
System.out.println(s1.hashCode());
String s2 = s.trim();
System.out.println(s2.hashCode());
String s3 = s1.trim();
System.out.println(s3.hashCode());
System.out.println();
System.out.println(s == s1);
System.out.println(s == s2);
System.out.println(s == s3);
}
OP:
96354
32539678
96354
96354
false -- Correct
true -- This means s and s2 are references to the same String object "abc" .
false -- s3=s1.trim()... which means s3="abc" yet s==s3 fails.. If the above conditon were to be considered (s==s2 is true..) , this should also be true..
Perché mi appare "false" quando controllo s == s3 ..
@JigarJoshi - Dubito che sia un duplicato. L'OP sa quando usare '==' e 'equals()'.Questa domanda riguarda un caso specifico, in cui '==' si comporta diversamente per diverse situazioni. – SudoRahul
@ R.J Quindi questa domanda non dovrebbe esistere .. (o l'OP deve solo rivedere alcuni degli altri duplicati sull'argomento) – user2864740
@ user2864740 - Non sono d'accordo con te su questo. È una buona domanda che richiede un dubbio molto specifico. Non vedo perché questo non dovrebbe esistere. Votazione di riaprire – SudoRahul