该用户从未签到
|
熟悉C++的人对于两个字符串比较的代码一定很了解: 7 h9 i2 s; g" u' S( X$ q5 \+ I
(string1==string2) 6 K" i9 L* e+ p/ D
但在java中,这个代码即使在两个字符串完全相同的情况下也会返回false 0 S& f( w9 T( C) U# M
Java中必须使用string1.equals(string2)来进行判断 1 O/ e' N/ w, ~& U
0 \/ k% b: W4 _- D$ J6 T补充 " }/ W I- E& T
如果: 7 Z& E$ ?3 Z8 o3 D% d+ F
string s1=new String("Hello"); 7 o5 r" N3 X4 z
string s2=new String("Hello"); $ P0 Y1 ^ u, S! o# u# L; B. V
则(s1==s2)=false
5 y+ C" I- M5 S, M0 V3 |) a7 P' [/ _/ e6 `4 ^8 q j
如果:
8 l; K8 y, H' @( z9 `string s1="Hello";
, [0 w8 W I- ^string s2="Hello"; + f8 D+ ~: u% x" Q
则(s1==s2)=true; 8 n+ @- i& W8 J7 S
因为他们指向的同一个对象。 " x9 \; p( E6 e+ w7 g" v
# i/ ?7 r0 p8 k) F |如果把其他变量的值赋给s1和s2,即使内容相同,由于不是指向同一个对象,也会返回false。所以建议使用equals(),因为equals比较的才是真正的内容 |
|