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);

    }
    
}

  就写到这里了,希望能帮到你。

posted @ 2017-12-28 11:30  小江。  阅读(12477)  评论(0编辑  收藏  举报