📜  Java字符串比较

📅  最后修改于: 2020-09-24 03:37:47             🧑  作者: Mango

Java字符串比较

我们可以根据内容和参考来比较java中的字符串。

它用于身份验证(通过equals()方法),排序(通过compareTo()方法),引用匹配(通过==运算符)等。

有三种方法可以比较Java中的字符串:

  • 通过equals()方法
  • 由= = 运算符
  • 通过compareTo()方法

1)通过equals()方法比较字符串

Stringequals()方法比较字符串的原始内容。它比较字符串的值是否相等。字符串类提供两种方法:

  • public boolean equals(Object another)将此字符串与指定对象进行比较。
  • public boolean equalsIgnoreCase(String another)将此字符串与另一个字符串进行比较,忽略大小写。
"class Teststringcomparison1{  
 public static void main(String args[]){  
   String s1="Sachin";  
   String s2="Sachin";  
   String s3=new String("Sachin");  
   String s4="Saurav";  
   System.out.println(s1.equals(s2));//true  
   System.out.println(s1.equals(s3));//true  
   System.out.println(s1.equals(s4));//false  
 }  
}  
"class Teststringcomparison2{  
 public static void main(String args[]){  
   String s1="Sachin";  
   String s2="SACHIN";  
     System.out.println(s1.equals(s2));//false  
   System.out.println(s1.equalsIgnoreCase(s2));//true  
 }  
}  

2)字符串比较== 运算符

==运算符比较引用而不是值。

"class Teststringcomparison3{  
 public static void main(String args[]){  
   String s1="Sachin";  
   String s2="Sachin";  
   String s3=new String("Sachin");  
   System.out.println(s1==s2);//true (because both refer to same instance)  
   System.out.println(s1==s3);//false(because s3 refers to instance created in nonpool)  
 }  
}  

3)通过compareTo()方法进行字符串比较

StringcompareTo()方法按字典顺序比较值,并返回一个整数值,该值描述第一个字符串是否小于,等于或大于第二个字符串。

假设s1和s2是两个字符串变量。如果:

  • s1 == s2 :0
  • s1> s2 :正值
  • s1 :负值
"class Teststringcomparison4{  
 public static void main(String args[]){  
   String s1="Sachin";  
   String s2="Sachin";  
   String s3="Ratan";  
   System.out.println(s1.compareTo(s2));//0  
   System.out.println(s1.compareTo(s3));//1(because s1>s3)  
   System.out.println(s3.compareTo(s1));//-1(because s3 < s1 )  
 }  
}