Java 中的字符串是 char 数组内部支持的对象。由于数组是不可变的,而字符串是保存字符的特殊数组,因此字符串也是不可变的。
Java的String类包含了很多对字符串进行各种操作的方法,如compare()、concat()、equals()、split()、length()、replace()、compareTo()、substring()、在这些方法中,我们将重点关注 compareTo() 方法。
Java String 类的compareTo() 方法按字典顺序将给定字符串与当前字符串进行比较。它返回正数、负数或 0。它根据字符串中每个字符的 Unicode 值来比较字符串。
如果第一个字符串按字典顺序大于第二个字符串,则返回正数(字符值之差)。如果第一个字符串按字典顺序小于第二个字符串,则返回负数;如果第一个字符串按字典顺序等于第二个字符串,则返回 0。
注:
compareTo()方法有三个变体。本文将全部介绍如下
此方法将此字符串与另一个对象进行比较。
语法:
int CompareTo(Object obj)
参数:
返回值: 如果参数是一个按字典顺序等于该字符串的字符串,则返回值为 0;如果参数是按字典顺序大于该字符串的字符串,则该值小于 0;如果参数是按字典顺序小于该字符串的字符串,则该值大于 0。
//Java代码演示
//compareTo() 的工作原理
公共类 Cmp1 {
公共静态无效主(字符串参数[])
{
// 初始化字符串
字符串str1 =“geeksforgeeks”;
String str2 = new String("geeksforgeeks");
String str3 = new String("astha");
//检查是否为geeksforgeeks字符串
// 相当于 geeksforgeeks 对象
系统.输出.print(
“geeksforgeeks(obj) 和 geeksforgeeks(str) 的区别:”);
System.out.println(str1.compareTo(str2));
//检查是否为geeksforgeeks字符串
// 等同于 astha 对象
系统.输出.print(
“astha(obj) 和 geeksforgeeks(str) 的区别:”);
System.out.println(str1.compareTo(str3));
}
}
//Java代码演示//compareTo() 的工作原理
公共类 Cmp2 {
公共静态无效主(字符串参数[])
{
// 初始化字符串
字符串str1 =“geeksforgeeks”;
String str2 = "geeksforgeeks";
字符串 str3 = "astha";
// 检查 geeksforgeeks 字符串是否存在
// 相当于 geeksforgeeks 字符串
系统.输出.print(
"geeksforgeeks(str) 和 geeksforgeeks(str) 的区别:");
System.out.println(str1.compareTo(str2));
// 检查 geeksforgeeks 字符串是否存在
// 等于 astha 字符串
系统.输出.print(
“astha(str) 和 geeksforgeeks(str) 的区别:”);
System.out.println(str1.compareTo(str3));
}
}
//Java代码演示
//compareToIgnoreCase() 的工作原理
公共课 Cmp3 {
公共静态无效主(字符串参数[])
{
// 初始化字符串
String str1 = "极客";字符串str2 =“gEEkS”;
// 检查 geeksforgeeks 字符串是否存在
// 相当于 geeksforgeeks 字符串
// 区分大小写
系统.输出.print(
“极客和 gEEkS 的区别(区分大小写):”);
System.out.println(str1.compareTo(str2));
// 检查 geeksforgeeks 字符串是否存在
// 等于 astha 字符串
// 不区分大小写
// 使用compareToIgnoreCase()
系统.输出.print(
“极客和 gEEkS 的区别(不区分大小写):”);
System.out.println(str1.compareToIgnoreCase(str2));
}
}
geeksforgeeks(obj)和geeksforgeeks(str)的区别: 0
astha(obj) 和 geeksforgeeks(str) 的区别 : 6
此方法按字典顺序比较两个字符串。
句:
int CompareTo(String anotherString)
参数:
返回值: 如果参数是一个按字典顺序等于该字符串的字符串,则返回值为 0;如果参数是按字典顺序大于该字符串的字符串,则该值小于 0;如果参数是按字典顺序小于该字符串的字符串,则该值大于 0。
//Java代码演示
//compareTo() 的工作原理
公共类 Cmp2 {
公共静态无效主(字符串参数[])
{
// 初始化字符串
字符串str1 =“geeksforgeeks”;
String str2 = "geeksforgeeks";
字符串 str3 = "astha";
//检查是否为geeksforgeeks字符串
// 相当于 geeksforgeeks 字符串
系统.输出.print(
"geeksforgeeks(str) 和 geeksforgeeks(str) 的区别:");
System.out.println(str1.compareTo(str2));
//检查是否为geeksforgeeks字符串
// 等于 astha 字符串
系统.输出.print(
“astha(str) 和 geeksforgeeks(str) 的区别:”);
System.out.println(str1.compareTo(str3));
}
}
geeksforgeeks(str) 和 geeksforgeeks(str) 的差异: 0
astha(str) 和 geeksforgeeks(str) 的区别:6
此方法按字典顺序比较两个字符串,忽略大小写差异。
语法:
int CompareToIgnoreCase(String str)
参数:
返回值:此方法返回负整数、零或正整数,因为指定的字符串大于、等于或小于此字符串,忽略大小写。
//Java代码演示
//compareToIgnoreCase() 的工作原理
公共课 Cmp3 {
公共静态无效主(字符串参数[])
{
// 初始化字符串
String str1 = "极客";
字符串str2 =“gEEkS”;
//检查是否为geeksforgeeks字符串
// 相当于 geeksforgeeks 字符串
// 区分大小写
系统.输出.print(
“极客和 gEEkS 的区别(区分大小写):”);
System.out.println(str1.compareTo(str2));
//检查是否为geeksforgeeks字符串
// 等于 astha 字符串// 不区分大小写
// 使用compareToIgnoreCase()
系统.输出.print(
“极客和 gEEkS 的区别(不区分大小写):”);
System.out.println(str1.compareToIgnoreCase(str2));
}
}
极客和gEEkS的区别(区分大小写):32
geeks 和 gEEkS 的区别(不区分大小写):0