JAVA中String類的比較


首先給大家看一段代碼

 

package javaapptest;

public class JavaAppTest {
    
    public static void main(String[] args) {
      
        String str1 = "Hello";
        String str2 = new String("Hello");
        String str3 = str2 ;
        System.out.println(str1==str2);
        System.out.println(str1==str3);
        System.out.println(str2==str3);
        
    }
    
}

 

  運行結果為: false

         false

          true

 

 下面給大家說一下為什么前兩個比較會為false,我們這里用 “==”符號不會比較字符串的內容 而是比較字符串地址里面的值,下面上一張圖給大家看就明白了;

如果把賦值代碼改成下面代碼

      
        String str1 = "Hello";
        String str2 = "Hello";
        String str3 = "Hello"

它會把str1,str2,str3都去指向一個Hello,不會再開辟新的空間

 

如果要比較字符串里面的內容我們可以使用equals來比較字符串的內容,如下代碼

package javaapptest;

public class JavaAppTest {
    
    public static void main(String[] args) {
      
        String str1 = "Hello";
        String str2 = new String("Hello");
        String str3 = str2 ;
        System.out.println(str1.equals(str2));
        System.out.println(str1.equals(str3));
        System.out.println(str2==str3);

    }
    
}

  就寫到這里了,希望能幫到你。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM