續
更高效地刷OJ——String常用方法(一)
更高效地刷OJ——String常用方法(二)
- contains() :這個方法用于查詢傳入的子串是否存在于字串中,這個方法回傳值是Boolean型別,
通過代碼理解:
public static void main(String[] args) {
String str = "Hello World";
//查詢"o w"這個子串是否存在于字串內
System.out.println(str.contains("o W"));
//查詢"o w"這個子串是否存在于字串內
System.out.println(str.contains("o w"));
}
運行結果:

10.startsWith() : 查看字串是否是以傳入的引數為起始,回傳值是boolea,這個方法有兩個多載:

第一種:從字串 0 位置開始查看字串是否是以傳入的引數為起始;
第二種:從傳入的第二個引數的位置為起始點,查看字串是否是以傳入的引數為起始,
需要注意的是這個方法是區別大小寫的,
通過代碼理解:
public static void main(String[] args) {
String str = "Hello World";
System.out.println("查看字串是否以\"hel\"子串為始 :" + str.startsWith("hel"));
//區分大小寫
System.out.println("查看字串是否以\"Hel\"子串為始 :" + str.startsWith("Hel"));
//從 0 位置查是否以"Wor"子串為始
System.out.println("從 0 位置查是否以\"Wor\"子串為始 :" + str.startsWith("Wor"));
//從 6 位置查是否以"Wor"子串為始
System.out.println("從 6 位置查是否以\"Wor\"子串為始 :" + str.startsWith("Wor", 6));
}
運行結果:

- endsWith() :于startsWith() 相對應,endsWith() 是檢測字串是否是以傳入的引數為結束,回傳值是boolea,
但是于startsWith() 不同的是因為endsWith() 是檢測結尾的,所以他只有一種多載形式,不需要傳入第二個起始位置引數,如下:

12. equals() :用來比較兩個String 物件內的字串是否相等,區分字串中字符的大小寫;
equalsIgnoreCase() :用來比較兩個String 物件內的字串是否相等,不區分字串中字符的大小寫;
注意: 于 " == " 用于比較兩個(任何型別)參考 是否指向同一個物件, equals() / equalsIgnoreCase() 是比較 兩個參考指向的物件內的內容是否相同,
通過代碼理解:
public static void main(String[] args) {
String str1 = "Hello World";
String str2 = "Hello World";
String str3 = "hello world";
System.out.println(str1.equals(str2));
//equals() 區分大小寫的比較
System.out.println(str1.equals(str3));
//equalsIgnoreCase() 不區分大小寫的比較
System.out.println(str1.equalsIgnoreCase(str3));
}
運行結果:

13.compareTo() : 比較兩個字串,回傳一個int型別的數
鋪墊(字母怎么比較):按照字母在Unicode碼表中先后順序比較,如 B > A; C > B; a > A,這里需要注意的是 在 Unicode碼表中,大寫字母段 在前,小寫字母段 在后,所以任何一個小寫字母都要大于大寫字母 (Z < a),
比較規則:先從兩個字串的首字母開始比較,若相等則比較下一位,直到能比較出大小的時候,此時:
(1).若前者字串首字母大于后者 回傳 一個 大于0 的int型別數值,若前者字串首字母 小于 后者字串首字母 回傳 一個小于0的int型別數值,
(2).對于兩個長度相等的字串,字母依次比較直至結束都相等的話 則說明這兩個字串相等,回傳 0,
(3).對于兩個長度不相等的字串如 “day” 和 “days”,前段字母都相等,就是另一個字串更長一些,則長的字串大
compareToIgnoreCase() :這個方法和 compareTo() 的區別為 compareToIgnoreCase() 忽視了兩個字串中大小寫的區別,
通過代碼理解:
public static void main(String[] args) {
String str1 = "Hello World";
String str2 = "Thanks";
String str3 = "hello WORLD";
String str5 = "HEllo World";
String str6 = "Hello Worlds";
//因為 "H" 在Unicode編碼表中在 "h" 之前,所以"Hello World" 小于 "hello World" 所以回傳負數
System.out.println( "\"Hello World\" 和 \"hello WORLD\"比較結果 :" + str1.compareTo(str3));
//因為首字母'H'相等,比較第二個字母,'e' > 'E' 所以回傳大于0 的數
System.out.println("\"Hello World\" 和 \"HEllo World\"比較結果 :" + str1.compareTo(str5));
//當字母都比較完了,則字串長度較長的那個大, 因為 "Hello World" 比 "Hello Worlds"短,所以回傳負數
System.out.println("\"Hello World\" 和 \"Hello Worlds\"比較結果 :" + str1.compareTo(str6));
//雖然"Thanks"更短,但是因為先比較字母大小'T'比'H'大所以 "Thanks"更大,回傳負數
System.out.println("\"Hello World\" 和 \"Thanks\"比較結果 :" + str1.compareTo(str2));
//compareToIgnoreCase()忽視兩個字串中的大小寫區別
System.out.println("\"Hello World\" 和 \"hello WORLD\" 用 compareToIgnoreCase() 的比較結果 :"
+ str1.compareToIgnoreCase(str3));
}
運行結果:

14.format() :這是一個靜態方法, 這個方法用于回傳一個按一定格式表達的字串,格式的形式和printf 中所用的格式相同
通過代碼理解:
public static void main(String[] args) {
String s = String.format("大家好,我叫 %s, 今年 %d 歲,","有裂痕的石頭",21);
System.out.println(s);
}
運行結果:

15.trim() : 裁減掉字串兩邊的(字串內部的不裁剪) 空字串,\n , \t等
通過代碼理解:
public static void main(String[] args) {
String s = "\t\tHello World \n";
//"|"用于顯示\t \n的存在
System.out.println('|' + s + '|');
String s1 = s.trim();
//用了trim()方法后對字串兩邊\t \n做了刪減
System.out.println('|' + s1 + '|');
}
運行結果:

16.valueOf() :這個方法也是一個靜態方法,用于把其它型別變數轉為String型別,它有以下幾種多載:

以下幾個方法稍作了解就行:
假設有兩個Sting型別 s和t
1.concat() : s.concat( t ); 等價于 s + t;
2.isEmpty() :s.isEmpty() == true 等價于 s.length()==0;
以上就是String型別常用方法,有時候在刷OJ題時直接使用這些方法,能以更快的速度實作題目要求
如果總結的有錯誤,希望各位看官能在評論區提出,謝謝,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/262545.html
標籤:java
上一篇:在Linux虛擬機上使用docker部署jar包及外部組態檔
下一篇:JAVA常用類別庫超重點——集合
