Java 中的字符串是僅由數組內部支持的對象,這意味著為字符分配連續的內存。請注意,字符串在 Java 中是不可變的,這意味著一旦我們創建了 String 對象並為其分配了一些值,我們就無法更改其內容。但是,我們可以根據需要進行修改來創建另一個 String 對象。
Java的String類包含許多對字符串執行各種操作的方法,我們將重點關注Java StringcompareTo()本文中的方法。
Java String.compareTo()方法
Java compareTo()方法將給定字符串與當前字符串進行比較按字典順序。它返回正數、負數或 0。它根據統一碼值字符串中的每個字符。
例子:
Java
public class StringCompareTo {
public static void main(String[] args) {
String str1 = "Geeks";
String str2 = "Geeks";
int comparison = str1.compareTo(str2);
if (comparison < 0) {
System.out.println(str1 + " comes before " + str2 + " lexicographically.");
} else if (comparison > 0) {
System.out.println(str1 + " comes after " + str2 + " lexicographically.");
} else {
System.out.println(str1 + " and " + str2 + " are lexicographically equal.");
}
}
}
輸出:
Geeks and Geeks are lexicographically equal.
用法
int comparison = str1.compareTo(str2);
參數:
- str1: 用於比較的字符串 1
- str2:用於比較的字符串 2
返回:
- 如果字符串 1 > 字符串 2,它返回積極的數字
- 如果字符串 1 < 字符串 2,它返回消極的數字
- 如果字符串1==字符串2,它返回0
異常:它拋出以下兩個異常:
- NullPointerException -如果指定的對象為 Null。
- ClassCastException-如果當前對象無法與指定對象進行比較。
CompareTo()方法的變體
有三種變體的compareTo()其方法如下:
- 使用intcompareTo(對象obj)
- 使用intcompareTo(String AnotherString)
- 使用intcompareToIgnoreCase(String str)
1.intcompareTo(對象 obj)
此方法將此字符串與另一個對象進行比較。
句法:
int compareTo(Object obj)
參數:
obj: the Object to be compared.
返回值:如果參數是按字典順序等於該字符串的字符串,則值為 0;如果參數是按字典順序大於此字符串的字符串,則為小於 0 的值;如果參數是按字典順序小於此字符串的字符串,則為大於 0 的值。
例子:
下麵是intcompareTo(Object obj)的實現:
Java
// Java code to demonstrate the
// working of compareTo()
public class Cmp1 {
public static void main(String args[])
{
// Initializing Strings
String str1 = "geeksforgeeks";
String str2 = new String("geeksforgeeks");
String str3 = new String("astha");
// Checking if geeksforgeeks string
// equates to geeksforgeeks object
System.out.print(
"Difference of geeksforgeeks(obj) and geeksforgeeks(str) : ");
System.out.println(str1.compareTo(str2));
// Checking if geeksforgeeks string
// equates to astha object
System.out.print(
"Difference of astha(obj) and geeksforgeeks(str) : ");
System.out.println(str1.compareTo(str3));
}
}
Difference of geeksforgeeks(obj) and geeksforgeeks(str) : 0 Difference of astha(obj) and geeksforgeeks(str) : 6
2.intcompareTo(String anotherString)
此方法按字典順序比較兩個字符串。
句法:
int compareTo(String anotherString)
參數:
anotherString: the String to be compared.
返回值:如果參數是按字典順序等於該字符串的字符串,則值為 0;如果參數是按字典順序大於此字符串的字符串,則為小於 0 的值;如果參數是按字典順序小於此字符串的字符串,則為大於 0 的值。
例子:
下麵是intcompareTo(String anotherString)的實現:
Java
// Java code to demonstrate the
// working of compareTo()
public class Cmp2 {
public static void main(String args[])
{
// Initializing Strings
String str1 = "geeksforgeeks";
String str2 = "geeksforgeeks";
String str3 = "astha";
// Checking if geeksforgeeks string
// equates to geeksforgeeks string
System.out.print(
"Difference of geeksforgeeks(str) and geeksforgeeks(str) : ");
System.out.println(str1.compareTo(str2));
// Checking if geeksforgeeks string
// equates to astha string
System.out.print(
"Difference of astha(str) and geeksforgeeks(str) : ");
System.out.println(str1.compareTo(str3));
}
}
Difference of geeksforgeeks(str) and geeksforgeeks(str) : 0 Difference of astha(str) and geeksforgeeks(str) : 6
3.intcompareToIgnoreCase(String str)
此方法按字典順序比較兩個字符串,忽略大小寫差異。
用法:
int compareToIgnoreCase(String str)
參數:
str: the String to be compared.
返回值:當指定的 String 大於、等於或小於此 String 時,此方法返回負整數、零或正整數,忽略大小寫。
例子:
下麵是intcompareToIgnoreCase(String str)的實現:
Java
// Java code to demonstrate the
// working of compareToIgnoreCase()
public class Cmp3 {
public static void main(String args[])
{
// Initializing Strings
String str1 = "geeks";
String str2 = "gEEkS";
// Checking if geeksforgeeks string
// equates to geeksforgeeks string
// case sensitive
System.out.print(
"Difference of geeks and gEEkS (case sensitive) : ");
System.out.println(str1.compareTo(str2));
// Checking if geeksforgeeks string
// equates to astha string
// case insensitive
// using compareToIgnoreCase()
System.out.print(
"Difference of geeks and gEEkS (case insensitive) : ");
System.out.println(str1.compareToIgnoreCase(str2));
}
}
Difference of geeks and gEEkS (case sensitive) : 32 Difference of geeks and gEEkS (case insensitive) : 0
Java String compareTo() 方法中的異常
Java 中的 compareTo() 方法可能引發兩種可能的異常:
- NullPointerException
- ClassCastException
compareTo() NullPointerException
在 Java 中,compareTo() 方法會拋出 NullPointerException;如果被比較的任何一個對象是空值。這可確保您顯式處理空值並防止意外行為。
例子:
Java
public class cmp5
{
// main method
public static void main(String[] args)
{
String str = null;
// null is invoking the compareTo method. Hence, the NullPointerException
// will be raised
int no = str.compareTo("Geeks");
System.out.println(no);
}
}
輸出:
Exception in thread "main" java.lang.NullPointerException at cmp5.main(cmp5.java:11)
compareTo() ClassCastException
這是一個運行時異常,當在 compareTo() 方法中比較兩個不兼容類型的對象時會發生。
例子:
Java
public class ClassCastExceptionExample {
public static void main(String[] args) {
Object obj1 = "Hello";
Object obj2 = 10; // Integer object
// Explicitly cast obj2 to String to force the exception
int comparison = ((String) obj2).compareTo(obj1);
System.out.println("Comparison: " + comparison);
}
}
輸出:
./ClassCastExceptionExample.java:8: error: incompatible types: Object cannot be converted to String
int comparison = ((String) obj2).compareTo(obj1); // ClassCastException occurs here
Also Read:
結論
Java中的compareTo()函數用於按字典順序比較兩個字符串或對象。它返回正整數、零或負整數。在本教程中,我們介紹了此方法並討論了其工作原理和異常情況。
閱讀更多String
Java String CompareTo() 方法 - 常見問題解答
Java中如何比較字符串?
You can compare strings in Java using the compareTo() method. It accepts two parameters and compare them lexicographically.
Java中compareTo()方法和equals()方法有什麽區別?
equals() method compareTo() method Used to check if two objects are exactly the same. Used to compare two objects and determine their relative order. Returns a boolean:
- true if the objects are considered equal.
- false otherwise.
Returns an integer:
- Negative value if the first object is considered “less than” the second.
- Zero if the objects are considered equal.
- Positive value if the first object is considered “greater than” the second.
Java中compareTo()返回什麽?
compareTo() method in Java returns an integer. It can have three possible values:
- Negative value: When the first object is considered “less than” the second.
- Zero: When the objects are considered equal.
- Positive value: When the first object is considered “greater than” the second.
相關用法
- Java String compareTo()用法及代碼示例
- Java String compareToIgnoreCase()用法及代碼示例
- Java String contains()用法及代碼示例
- Java String concat()用法及代碼示例
- Java String contentEquals()用法及代碼示例
- Java String copyValueOf()用法及代碼示例
- Java String codePoint()用法及代碼示例
- Java String charAt()用法及代碼示例
- Java String split()用法及代碼示例
- Java String length()用法及代碼示例
- Java String replace()用法及代碼示例
- Java String replaceAll()用法及代碼示例
- Java String substring()用法及代碼示例
- Java String equals()用法及代碼示例
- Java String equalsIgnoreCase()用法及代碼示例
- Java String indexOf()用法及代碼示例
- Java String trim()用法及代碼示例
- Java String toLowerCase()用法及代碼示例
- Java String valueOf()用法及代碼示例
- Java String matches()用法及代碼示例
- Java String startsWith()用法及代碼示例
- Java String endsWith()用法及代碼示例
- Java String isEmpty()用法及代碼示例
- Java String intern()用法及代碼示例
- Java String getBytes()用法及代碼示例
注:本文由純淨天空篩選整理自佚名大神的英文原創作品 Java String compareTo() Method with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。