Srring的比较

String 的比较

对字符串内容的比较,主要有以下几种方法。

1.恒等号(==)

  • 用于基本数据类型的比较。
  • 判断引用是否指向堆内存的同一块地址。

2.equals() 方法

  • 比较两个字符串的内容是否相等,返回值为布尔类型。

String 类型比较不同对象内容是否相同,应该用 equals ,因为 == 用于比较引用类型和比较基本数据类型时具有不同的功能。

  1. String 作为一个对象来使用。

    例子一:对象不同内容相同,”==”返回 false ,equals 返回 true。

    String s1 = new String("hello");
    String s2 = new String("hello");
    
    System.out.println(s1 == s2);		//false
    System.out.println(s1.equals(s2));	//true
    

    例子二:同一对象,“==” 和 equals 结果相同

    String s1 = new String("hello");
    String s2 = s1;
    
    System.out.println(s1 == s2);		//true
    System.out.println(s1.equals(s2));	//true
    
  2. String 作为一个基本类型来使用。

    如果值不相同,对象就不相同,所以 ”==“ 和 equals 结果一样

    String s1 = "hello";s
    String s2 = "hello";
    
    System.out.println(s1 == s2);		//true
    System.out.println(s1.equals(s2));	//true
    

3.equalsIgnoreCase() 方法

equalsIgnoreCase() 忽略大小写,比较两个字符串的内容是否相等,返回值为布尔值。

4.compareTo() 方法

compareTo() 方法用于将 Number 对象与方法的参数进行比较,可用于比较 Byte,Long,Integer 等。该方法用于两个相同数据类型的比较,两个不同类型的数据不能用此方法来比较。

返回值

  • 如果指定的数与参数相等返回 0。
  • 如果指定的数小于参数返回 -1。
  • 如果指定的数大于参数返回 1。

StringDemo02

package string;

public class StringDemo02 {
    public static void main(String[] args) {
        String s1 = "hello";
        String s2 = new String("hello");
        String s3 = s1;
        String s4 = new String("hello");
        String s5 = new String("Hello");

        System.out.print("s1 == s2:");
        System.out.println(s1 == s2);  //false

        System.out.print("s1 == s3:");
        System.out.println(s1 == s3);  //true

        System.out.print("s2 == s4:");
        System.out.println(s2 == s4);  //false

        System.out.println("s2.equals(s4):"+ s2.equals(s4));        //true
        System.out.println("s2.compareTo(s4):"+ s2.compareTo(s4));  //0

        System.out.println("s2.equalsIgnoreCase(s5):"+ s2.equalsIgnoreCase(s5));    //true

    }
}

s1 == s2:false
s1 == s3:true
s2 == s4:false
s2.equals(s4):true
s2.compareTo(s4):0
s2.equalsIgnoreCase(s5):true

posted @ 2021-07-31 23:31  一口葱花  阅读(138)  评论(0)    收藏  举报