Srring的比较
String 的比较
对字符串内容的比较,主要有以下几种方法。
1.恒等号(==)
- 用于基本数据类型的比较。
- 判断引用是否指向堆内存的同一块地址。
2.equals() 方法
- 比较两个字符串的内容是否相等,返回值为布尔类型。
String 类型比较不同对象内容是否相同,应该用 equals ,因为 == 用于比较引用类型和比较基本数据类型时具有不同的功能。
-
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
-
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