原文: https://howtodoinjava.com/java/string/java-string-compareto-method/
Java 字符串compareTo()
方法按字典顺序比较两个字符串。 我们可以考虑基于字典的比较。
1. 字符串比较
如果字符串'str1'
在字典中的另一个字符串'str2'
之前,则在字符串比较中str2
大于'str1'
。
string1 > string2
–string1
在字典中出现string2
之后。
string1 < string2
-string1
在字典中的string2
之前。
string1 = string2
-string1
和string2
相等。
2. String.compareTo()
方法
在compareTo()
方法中,按字典顺序(字典顺序)比较两个字符串。 第一个字符串是在其上调用方法的String
对象本身。 第二个字符串是方法的参数。
此方法根据字符串中每个字符的 Unicode 值进行字符串比较。
2.1 方法返回类型
此方法的结果为整数值,其中:
- 正整数 – 表示按字典顺序字符串对象在变量字符串之后。
- 负整数 – 表示按字典顺序的字符串对象在变量字符串之前。
- 零 – 表示两个字符串相等。
2.2 方法语法
Java compareTo()
方法实现。
public int compareTo(String anotherString) {
int len1 = value.length;
int len2 = anotherString.value.length;
int lim = Math.min(len1, len2);
char v1[] = value;
char v2[] = anotherString.value;
int k = 0;
while (k < lim) {
char c1 = v1[k];
char c2 = v2[k];
if (c1 != c2) {
return c1 - c2;
}
k++;
}
return len1 - len2;
}
3. Java String.compareTo()
示例
了解如何在 Java 字符串上调用compareTo()
方法。
public class Main
{
public static void main(String[] args)
{
System.out.println( "apple".compareTo("banana") ); //-1 - apple comes before banana
System.out.println( "apple".compareTo("cherry") ); //-2 - apple comes before cherry
System.out.println( "cherry".compareTo("banana") ); //1 - cherry comes after banana
System.out.println( "cherry".compareTo("cherry") ); //0 - Both strings are equal
}
}
4. Java String.compareToIgnoreCase()
示例
Java 程序以不区分大小写的方式比较两个字符串。 请注意,compareTo()
和compareToIgnoreCase()
方法的行为方式相同,只是后者不区分大小写。
在给定的示例中,请注意前两个语句中的字符串比较,如何更改字符串的大小写可能如何更改结果和顺序。
再次注意,在将每个字符转换为 unicode 值之后,将对两个字符串进行逐字符比较。
public class Main
{
public static void main(String[] args)
{
System.out.println( "apple".compareTo("BANANA") ); //31
System.out.println( "apple".compareToIgnoreCase("banana") ); //-1
System.out.println( "cherry".compareTo("cherry") ); //0
System.out.println( "cherry".compareToIgnoreCase("CHERRY") ); //0
}
}
学习愉快!