Java中判断字符串相等

发布时间 2023-03-30 09:17:29作者: 欢乐豆123

Java中判断字符串相等

  在Java中,如果我们想要判断两个字符串值是否相等,会不会首先想到用“==”呢?那么用“==”是否可能会出现问题呢?

  比如:下面s1和s2是否相等?
  String s1="abc";
  String s2= new String("abc");

 1 public class Demo {
 2 
 3     public static void main(String[] args) {
 4         String str1 = "abc";
 5         String str2 = "abc";
 6         String str3 = str1;
 7         String str4 = new String("abc");
 8         String str5 = new String("abc");
 9 
10         if (str1 == str4) {
11             System.out.println("str1和str4比较引用地址结果为true");
12         } else {
13             System.out.println("str1和str4比较引用地址结果为false");
14         }
15 
16         // str1=str1  true,相同引用
17         // str1=str2  true,str1和str2都在公共池中,引用相同
18         // str1=str3  true,str3和str1引用相同
19         // str1=str4  false,不同引用地址
20         // str4=str5  false,堆中不同引用地址
21 
22         // 比较内容
23         if (str1.equals(str4)) {
24             System.out.println("str1和str4比较内容结果为true");
25         } else {
26             System.out.println("str1和str4比较内容结果为false");
27         }
28     }
29 }