1.介绍
- Java 中的字符串是 char 数组内部支持的对象。由于数组是不可变的,而字符串也是一种保存字符的特殊数组,因此字符串也是不可变的。
- Java 的 String 类包含许多对字符串执行各种操作的方法,我将重点关注 compareTo() 和compare()方法。
2.compareTo()
- Java String 类 compareTo() 方法按字典顺序将给定字符串与当前字符串进行比较。它返回正数、负数或 0。它根据字符串中每个字符的 Unicode 值比较字符串。
- 如果第一个字符串在字典序上大于第二个字符串,则它返回一个正数(字符值的差值)
- 如果第一个字符串在字典序上小于第二个字符串,则返回负数
- 如果第一个字符串在字典序上等于第二个字符串,则返回 0。
1)int compareTo(Object obj)
此方法将此字符串与另一个对象进行比较。
Syntax:int compareTo(Object obj)
参数: obj:要比较的对象。
返回值:如果参数是按字典顺序等于此字符串的字符串,则值为 0;如果参数是按字典顺序大于此字符串的字符串,则该值小于 0;如果参数是按字典顺序小于此字符串的字符串,则该值大于 0。
public class Test2 {
public static void main(String[] args) {
// Initializing Strings
String str1 = "a";
String str2 = new String("a");
String str3 = new String("b");
System.out.print( "Difference of a(obj) and a(str) : ");
System.out.println(str1.compareTo(str2));
// Checking if a string
// equates to b object
System.out.print( "Difference of b(obj) and a(str) : ");
System.out.println(str1.compareTo(str3));
}
}
Difference of a(obj) and a(str) : 0
Difference of b(obj) and a(str) : -1
2)int compareTo(String anotherString)
此方法按字典顺序比较两个字符串。
Syntax:int compareTo(String anotherString)
参数: anotherString:要比较的字符串
返回值:如果参数是按字典顺序等于此字符串的字符串,则值为 0;如果参数是按字典顺序大于此字符串的字符串,则该值小于 0;如果参数是按字典顺序小于此字符串的字符串,则该值大于 0。
public class Test2 {
public static void main(String[] args) {
String str1 = "a";
String str2 = "a";
String str3 = new String("b");
System.out.print( "Difference of a(str and a(str) : ");
System.out.println(str1.compareTo(str2));
System.out.print( "Difference of b(str) and a(str) : ");
System.out.println(str1.compareTo(str3));
}
}
Difference of a(str and a(str) : 0
Difference of b(str) and a(str) : -1
3)int compareToIgnoreCase(String str)
此方法按字典顺序比较两个字符串,忽略大小写差异。
Syntax:int compareToIgnoreCase(String str)
参数: str:要比较的字符串。
返回值:此方法返回负整数、零或正整数,因为指定的字符串大于、等于或小于此字符串,忽略大小写。
public class Test2 {
public static void main(String[] args) {
String str1 = "a";
String str2 = "A";
System.out.println(str1.compareTo(str2));
System.out.println(str1.compareToIgnoreCase(str2));
}
}
32
0
3.compare()
Java 中的 compare() 方法比较作为参数给出的两个类特定对象 (x, y)。
它返回值: 0: 如果 (x==y) -1:如果(x < y) 1: 如果 (x > y)
Syntax:public int compare(Object obj1, Object obj2)
其中 obj1 和 obj2 是要使用 compare() 方法进行比较的两个对象。
public class Test2 {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println(Integer.compare(a, b));
int x = 30;
int y = 30;
System.out.println(Integer.compare(x, y));
int w = 15;
int z = 8;
System.out.println(Integer.compare(w, z));
}
}
-1
0
1
public class Test2 {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println(Integer.compare(a, b));
int x = 30;
int y = 30;
System.out.println(Integer.compare(x, y));
int w = 15;
int z = 8;
System.out.println(Integer.compare(w, z));
}
public static int compare(Object obj1, Object obj2)
{
// 将两个对象转换为整数用于比较
int intObj1 = (int)obj1;
int intObj2 = (int)obj2;
int difference = intObj1 - intObj2;
if (difference == 0) {
return 0;
}
else if (difference < 0) {
return -1;
}
else {
return 1;
}
}
}
-1
0
1