使用Java的String类来比较两个字符串的值
Java的String类是用来表示字符串对象的,它可以在Java程序中进行字符串的操作和处理。其中,字符串比较是字符串操作的常见操作之一。在Java中,String类提供了多种方法来进行字符串比较。
字符串比较可以分为两种:一种是按字典序比较,即按字符的Unicode值进行比较;另一种是按内容比较,即比较两个字符串的内容是否相同。String类提供的方法可分别实现这两种比较方式。
按字典序比较
按字典序比较是比较字符串的Unicode编码值,一般用于判断字符串的顺序大小。在String类中,有四种方法实现按字典序比较的功能。
1. compareTo()方法
compareTo()方法是String类中用于按字典序比较的方法之一。其方法签名为public int compareTo(String anotherString),返回值为一个整型值。该方法比较调用对象与参数字符串的字典序大小,当调用对象小于参数字符串时,返回一个负数;当调用对象大于参数字符串时,返回一个正数;当两个字符串相等时返回0。
示例如下:
String str1 = "abc";
String str2 = "def";
String str3 = "bac";
System.out.println(str1.compareTo(str2)); //-3
System.out.println(str2.compareTo(str1)); //3
System.out.println(str1.compareTo(str3)); //1
2. equals()方法
equals()方法用于判断两个字符串是否相等,即比较两个字符串的内容是否相同。该方法的方法签名为public boolean equals(Object anObject),返回值为一个布尔值。当调用对象与参数字符串相等时,返回true;否则返回false。
示例如下:
String str1 = "abc";
String str2 = "ABC";
System.out.println(str1.equals(str2)); //false
System.out.println(str1.equalsIgnoreCase(str2)) //true
3. compareToIgnoreCase()方法
compareToIgnoreCase()方法类似于compareTo()方法,但是可以忽略字符串中字符的大小写。其方法签名为public int compareToIgnoreCase(String str),返回值为整型值。当调用对象小于参数字符串时,返回一个负数;当调用对象大于参数字符串时,返回一个正数;当两个字符串相等时返回0。
示例如下:
String str1 = "abc";
String str2 = "ABC";
System.out.println(str1.compareToIgnoreCase(str2)); //0
4. regionMatches()方法
regionMatches()方法用于比较调用对象与参数字符串的子字符串是否相等。其方法签名为public boolean regionMatches(int toffset, String other, int ooffset, int len),返回值为一个布尔值。其中,toffset是调用字符串的起始点,other是要比较的字符串,ooffset是要比较字符串的起始点,len是要比较字符串的长度。当两个字符串的子字符串相等时,返回true;否则返回false。
示例如下:
String str1 = "abc";
String str2 = "def";
System.out.println(str1.regionMatches(0, str2, 1, 2)); //true
按内容比较
按内容比较是比较两个字符串的内容是否相同。在Java中,有两种方法实现按内容比较的功能。
1. equals()方法
equals()方法在按字典序比较中已经介绍了,其作用是比较两个字符串的内容是否相等。
2. contentEquals()方法
contentEquals()方法用于比较调用对象与参数CharSequence对象的内容是否相等。该方法的方法签名为public boolean contentEquals(CharSequence cs),其中,cs是要比较的CharSequence对象。当调用对象与参数CharSequence对象的内容相等时,返回true;否则返回false。
示例如下:
String str1 = "abc";
StringBuilder str2 = new StringBuilder("abc");
System.out.println(str1.contentEquals(str2)); //true
总结
Java的String类提供了多种方法来比较两个字符串的值。按字典序比较可以用compareTo()、equals()、compareToIgnoreCase()和regionMatches()方法来实现;按内容比较可以用equals()和contentEquals()方法来实现。在实际开发中,选择具体的方法要根据具体的需求来确定。
