在Java中,進行字元串的比較是非常常見的操作。比如說,判斷兩個字元串是否相等,或者比較字元串的大小。為了解決這個問題,JAVA提供了一系列方法來進行字元串的比較操作。其中比較常用的是String.equals()方法。
一、String.equals()方法的基礎使用
String.equals()方法用來比較兩個字元串的內容是否相同,如果相同返回true,否則返回false。它是區分大小寫的。
public boolean equals(Object anObject)
示例代碼如下:
String str1 = "Hello"; String str2 = "hello"; if(str1.equals(str2)){ System.out.println("兩個字元串相同"); }else{ System.out.println("兩個字元串不相同"); }
在這個例子中,由於str1和str2是由不同的字元組成,所以輸出的結果是「兩個字元串不相同」。
二、String.equals()方法的高級用法
String.equals()方法不僅可以比較兩個字元串是否相同,還可以比較字元串區域是否相同。這種比較方法可以識別字元串中的子字元串是否相同。
public boolean equals(String anotherString) public boolean equalsIgnoreCase(String anotherString) public boolean contentEquals(StringBuffer sb) public boolean equals(Object anObject) public boolean regionMatches(int toffset, String other, int ooffset, int len) public boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
其中,equals()方法用來比較兩個字元串是否相同,equalsIgnoreCase()方法用來比較兩個字元串是否相同,但是忽略大小寫。regionMatches(int toffset, String other, int ooffset, int len)方法用來比較兩個字元串的一個區域是否相同。contentEquals(StringBuffer sb)方法用來比較當前字元串是否和一個字元串緩衝區內容相等。
示例代碼如下:
String str1 = "HelloWorld"; String str2 = "world"; System.out.println(str1.regionMatches(5,str2,0,5)); //false System.out.println(str1.regionMatches(true,5,str2,0,5)); //true
在這個例子中,regionMatches()方法比較的是在字元串中的第5個字元開始,與「world」這個字元串的前5個字元是否相同。第二個regionMatches()方法中的true表示比較時忽略大小寫。
三、String.equals()方法的對比
在Java中,字元串的比較方式有很多,除了equals()方法,還有compareTo()方法和==操作符。
compareTo()方法是用來比較兩個字元串大小的,返回值為int類型。如果當前字元串與另一個字元串相等,則返回0;如果當前字元串小於另一個字元串,則返回小於0的值;如果當前字元串大於另一個字元串,則返回大於0的值。
public int compareTo(String anotherString)
示例代碼如下:
String str1 = "Hello"; String str2 = "hello"; String str3 = "Hello"; int result1 = str1.compareTo(str2); int result2 = str1.compareTo(str3); System.out.println(result1); //-32 System.out.println(result2); //0
在這個例子中,str1與str2的內容不相等,且由不同的大小寫字母組成,所以result1的值為-32(小於0)。str1與str3的內容相等,所以result2的值為0。
==操作符用來比較兩個字元串的地址是否相等。如果兩個字元串的地址相等,則返回true,否則返回false。
String str1 = "Hello"; String str2 = "Hello"; String str3 = new String("Hello"); System.out.println(str1 == str2); //true System.out.println(str1 == str3); //false
在這個例子中,str1和str2都是使用相同的對象創建的,所以它們具有相同的地址。但是str3是通過使用new關鍵字創建的新對象,所以它的地址與str1和str2不同。
四、總結
Java中的字元串比較有很多種方式,其中比較常用的是使用String.equals()方法。此外,compareTo()方法可以用來比較字元串大小,而==操作符用來比較兩個字元串的地址是否相等。
示例代碼:
String str1 = "Hello"; String str2 = "hello"; if(str1.equals(str2)){ System.out.println("兩個字元串相同"); }else{ System.out.println("兩個字元串不相同"); } String str3 = "HelloWorld"; String str4 = "world"; System.out.println(str3.regionMatches(5,str4,0,5)); //false System.out.println(str3.regionMatches(true,5,str4,0,5)); //true String str5 = "Hello"; String str6 = "Hello"; String str7 = new String("Hello"); int result1 = str5.compareTo(str6); int result2 = str5.compareTo(str7); System.out.println(result1); //0 System.out.println(result2); //-0 System.out.println(str5 == str6); //true System.out.println(str5 == str7); //false
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/307006.html