java基礎教程之字串的介紹,比較重要的一個知識點「四」
1、判斷字串的開始與結尾
startsWith()方法與endsWith()方法分別用於判斷字串是否以指定的內容開始或結束。這兩個方法的返回值都為boolean型別。
startsWith()方法
該方法用於判斷當前字串物件的字首是否是引數指定的字串。
語法:
str。startsWith(Stringprefix)
prefix:作為字首的字元。
endsWith()方法
該方法用於判斷當前字串是否是以給定的子字串結束。
語法:
str。endsWith(Stringsuffix)
suffix:作為字尾的字串。
例
在專案中建立類StartOrEnd,在主方法中建立String型變數,並判斷變數的前導和後置字串。
public
class
StartOrEnd { // 建立類
public
static
void
main(String args[]) { // 主方法
String num1 = “22045612”; // 定義字串num1
String num2 = “21304578”; // 定義字串num2
boolean
b = num1。startsWith(“22”); // 判斷字串num1是否以’22’開頭
boolean
b2 = num1。endsWith(“78”); // 判斷字串num1是否以’78’開頭
boolean
b3 = num2。startsWith(“22”); // 判斷字串num2是否以’22’開頭
boolean
b4 = num2。endsWith(“78”); // 判斷字串num2是否與’78’開頭
// 輸出資訊
System。
out
。println(“字串num1是以‘22’開始的嗎?” + b);
System。
out
。println(“字串num1是以‘78’結束的嗎?” + b2);
System。
out
。println(“字串num2是以‘22’開始的嗎?” + b3);
System。
out
。println(“字串num2是以‘78’結束的嗎?” + b4);
}
}
執行的結果如圖1所示。
圖1 執行結果
2、判斷字串是否相等
字串作為物件如對其進行比較不能簡單的使用比較運算子“==”,因為比較運算子比較的是兩個字串的地址是否相同。即使兩個字串的內容相同,但兩個物件的記憶體地址是不同的。使用比較運算子仍然會返回false。
例
使用比較運算子比較兩個字串,例項程式碼如下:
String tom =
new
String(“Iam a student”);
String jerry =
new
String(“Iam a student”);
boolean
b = (tom == jerry);
此時布林型變數b的值為false,因為字串是物件,tom、jerry是引用,記憶體示意圖如圖1所示。
圖1 記憶體示意圖
因此要比較兩個字串內容是否相等,應使用equals()方法和equalsIgnoreCase()方法。
equals()方法
如果兩個字串具有相同的字元和長度,則使用equals()方法進行比較時,則返回true。
語法:
str。equals(Stringotherstr)
str、otherstr:參加比較的兩個字串物件。
equalsIgnoreCase()方法
使用equals()方法對字串進行比較時,是區分大小寫的。而使用equalsIgnoreCase()方法是在忽略了大小寫的情況下比較兩個字串是否相等。返回結果仍為boolean型別。
語法:
str。equalsIgnoreCase(Stringotherstr)
str、otherstr:參加比較的兩個字串物件。
透過下面的例子可以看出equals()方法和equalsIgnoreCase()方法的區別。
例
在專案中建立類Opinion,在主方法中建立String型變數,實現判斷兩個字串是否相等,並將結果輸出。
public
static
void
main(String args[]) { //主方法
String s1 =
new
String(“abc”); //建立字串物件s1
String s2 =
new
String(“ABC”); //建立字串物件s2
String s3 =
new
String(“abc”); //建立字串物件s3
boolean
b = s1。equals(s2); //使用equals()方法比較s1與s2
boolean
b2 = s1。equalsIgnoreCase(s3); //使用equalsIgnoreCase()方法比較s1與s2
System。
out
。println(s1+ “ equals ” + s2 + “ :” + b); //輸出資訊
System。
out
。println(s1+ “ equalsIgnoreCase ” + s2 + “ :” + b2);
}
}
執行結果如圖2所示。
圖2 執行結果
3、按字典順序比較兩個字串
compareTo()方法為按字典順序比較兩個字串,該比較基於字串中各個字元的Unicode值。按字典順序將此String物件表示的字元序列與引數字串所表示的字元序列進行比較。如果按字典順序此String物件位於引數字串之前,則比較結果為一個負整數;如果按字典順序此String物件位於引數字串之後,則比較結果為一個正整數;如果這兩個字串相等,則結果為0。
語法:
str.compareTo(Stringotherstr)
str、otherstr:參加比較的兩個字串物件。
說明:compareTo()方法只有在equals(Object)方法返回true時才返回0。
在專案中建立類Wordbook,在主方法中建立String變數,使用compareTo()方法將字元變數進行比較。並將比較結果輸出。
public
class
Wordbook { //建立類
public
static
void
main(String args[]) { //主方法
String str =
new
String(“b”);
String str2 =
new
String(“a”); //用於比較的3個字串
String str3 =
new
String(“c”);
System。
out
。println(str+ “ compareTo ” + str2 + “:”
+ str。compareTo(str2)); //將str與str2比較的結果輸出
System。
out
。println(str+ “ compareTo ” + str3 + “:”
+ str。compareTo(str3)); //將str與str3比較的結果輸出
}
}
執行結果如圖1所示:
圖1 執行結果
今天就寫這麼多,後邊繼續寫吧,字串這邊比較重要,內容就寫詳細點吧!