==是進行對象的位址值比較,如果需要字元串的内容比較,可以使用兩個方法:
public boolean equals(Object obj):參數可以是任何對象,隻有參數是一個字元串并且内容相同的才會給出true;否則傳回false。
1 String str1 = "Hello";
2 String str2 = "Hello";
3 char[] charArray = {'H','e','l','l','o'};
4 String str3 = new String(charArray);
5
6 System.out.println(str1.equals(str2));//true
7 System.out.println(str1.equals(str3));//true
8 System.out.println(str2.equals(str3));//true
9 System.out.println(str3.equals("Hello"));//true
10 System.out.println("Hello".equals(str1));//true
11
12 String str4 = "hello";
13 System.out.println(str4.equals(str1));//false
14
15 String str5 = null;
16 System.out.println("abc".equals(str5));//推薦:false
17 // System.out.println(str5.equals("abc"));//不推薦:報錯,空指針異常NullPointerException
注意事項:
1.任何對象都能用Object進行接受。
2.equals方法具有對稱性,也就是 a.equals(b) 和b.equals(a) 效果一樣。
3.如果比較雙方一個常量一個變量,那麼推薦把常量字元串放在前面。//例如: "abc".equals.(str)
public boolean equalsIgnoreCase(String str):忽略大小寫,進行内容比較。【注意】忽略大小寫隻限于英文。
1 String strA = "java";
2 String strB = "Java";
3 System.out.println(strA.equals(strB));//false 嚴格區分大小寫
4 System.out.println(strA.equalsIgnoreCase(strB));//true 忽略大小寫