str.equals(" ")与str==" "有何区别?

时间:2022-07-19 16:13:06
最近看书上都用str.equals(" "),它是判断两个字符串是否相待的意思吗?
为什么不用str==" "来判断两个字符串是否相等?

6 个解决方案

#1


equal 用来判断两个字符串的内容是否相同
== 用来判断两个字符串的地址是否相同,就是说,如果两个字符串的内容即使相同,但如果不是引用同一个地址下的string,判断结果也是false
String s1 = new String("abc");
String s2 = new String("abc");
s1==s2 =>false
s1.equal(s2) =>true

String s1 = "abc";
String s2 = "abc"; //s1 和s2 引用了同一个地址的字符串
两个判断就都是true了

#2


楼上正解:)
public class Equal {
public static void main(String[] args) {
String a = new String("abc");
String b = new String("abc");
System.out.println("a==b?");
System.out.println(a==b);
System.out.println("a.equals(b)");
System.out.println(a.equals(b));
}
}

a==b?
false
a.equals(b)
true

#3


明白,结帐

#4


equals的默认实现不是用==的么

#5


只有up了

#6


ding

#1


equal 用来判断两个字符串的内容是否相同
== 用来判断两个字符串的地址是否相同,就是说,如果两个字符串的内容即使相同,但如果不是引用同一个地址下的string,判断结果也是false
String s1 = new String("abc");
String s2 = new String("abc");
s1==s2 =>false
s1.equal(s2) =>true

String s1 = "abc";
String s2 = "abc"; //s1 和s2 引用了同一个地址的字符串
两个判断就都是true了

#2


楼上正解:)
public class Equal {
public static void main(String[] args) {
String a = new String("abc");
String b = new String("abc");
System.out.println("a==b?");
System.out.println(a==b);
System.out.println("a.equals(b)");
System.out.println(a.equals(b));
}
}

a==b?
false
a.equals(b)
true

#3


明白,结帐

#4


equals的默认实现不是用==的么

#5


只有up了

#6


ding