java 比較字串 “==”與equal的區別
阿新 • • 發佈:2018-11-10
1. str1==str2 :判斷str1與str2是否同一個物件
public class TestString { public static void main(String[] args) { String str1 = "the light"; String str2 = new String(str1); //==用於判斷是否是同一個字串物件 System.out.println( str1 == str2);//輸出 false ;str1和str2的內容一樣,但不是同個物件。 } }
特例
一般說來,編譯器每碰到一個字串的字面值,就會建立一個新的物件
所以在第6行會建立了一個新的字串"the light"
但是在第7行,編譯器發現已經存在現成的"the light",那麼就直接拿來使用,而沒有進行重複建立
public class TestString { public static void main(String[] args) { String str1 = "the light"; String str3 = "the light"; System.out.println( str1 == str3); //輸出 true } }
2.str1.equals(str2):判斷str1與str2的內容是否相同
使用equals進行字串內容的比較,必須大小寫一致
equalsIgnoreCase,忽略大小寫判斷內容是否一致
public class TestString { public static void main(String[] args) { String str1 = "the light"; String str2 = new String(str1); String str3 = str1.toUpperCase(); //==用於判斷是否是同一個字串物件 System.out.println( str1 == str2); System.out.println(str1.equals(str2));//完全一樣返回true System.out.println(str1.equals(str3));//大小寫不一樣,返回false System.out.println(str1.equalsIgnoreCase(str3));//忽略大小寫的比較,返回true } }