續 更高效地刷OJ——String常用方法(一).
5.subString() :從字串中切除一個子串,該方法有兩個多載

第一個是傳入一個起始位置,回傳從起始位置一直到結尾的子串
第二個是傳入一個起始位置,一個結束位置,回傳從起始位置到結束位置長度的子串(左閉右開)
通過代碼理解:
public static void main(String[] args) {
String str = "我是中國人,我愛我的,我愛我的家鄉,我愛我的學校,我愛我的家";
//這是一個空字串
System.out.println(str.substring(30));
//等同于
System.out.println(str.substring(str.length()));
//最后五個
System.out.println(str.substring(str.length() - 5));
//從第6位開始
System.out.println(str.substring(6));
//從第0位到5位之前 <=> [ 0 , 5 )
System.out.println(str.substring(0, 5));
//從第6到10位之前 <=> [ 6 , 10 )
System.out.println(str.substring(6, 10));
}
運行結果:

6.replace( char oldChar, char newChar) :該方法作用為替換
有以下兩種多載

第一種會把字串中所有oldChar換為newChar,若字串中不含有oldChar則字串不變,
第二種可以理解為替換字串,并且替換目標長度和替換的長度可以不同,
通過代碼理解:
public static void main(String[] args) {
String str = "我是中國人,我愛我的祖國,我愛我的家鄉,我愛我的學校,我愛我的家";
System.out.println(str.replace('我', '你'));
//字串的替換,長度可不同
System.out.println(str.replace("我", "我們"));
System.out.println(str.replace("祖國", "中華人民共和國"));
}
運行結果:

7.split() :這個方法的作用是按照一個界限將字串分成一個字串陣列,這個界限是傳入的引數,實際要求傳入一個正則運算式(正則運算式在后續博客中介紹),但是目前我們可以根據實際需要去分,
public static void main(String[] args) {
String str = "我是中國人.我愛我的.我愛我的家鄉.我愛我的學校.我愛我的家";
//以"我愛" 為界限 將str分為一個字串陣列
String[] group1 = str.split("我愛");
System.out.println(Arrays.toString(group1));
//以"," 為界限 將str分為一個字串陣列
String[] group2 = str.split(".");
System.out.println(Arrays.toString(group2));
//因為"."在正則運算式中有特殊意義所以會出現這種情況
//將"."轉義就好"\\."
String[] group3 = str.split("\\.");
System.out.println(Arrays.toString(group3));
}
運行結果如下:

spilt是將一個字串按一定規則切成一個字串陣列,那么有沒有一個方法將一個字串陣列組合成一個字串 ?
答案是有的,
不同于前面介紹的普通方法,這個方法是一個靜態方法
String下有個靜態方法join() , 它需要傳入兩個引數,第一個是字串陣列中每個字串鏈接處需要增加的字串(這里有別于split()中需要傳入的是正則運算式,這里只需要傳入字串),第二個引數是傳入字串陣列的名字,
通過代碼理解:
public static void main(String[] args) {
String[] group ={"我是中國人","我愛我的","我愛我的家鄉","我愛我的學","我愛我的家"};
String str = String.join(",",group);
System.out.println(str);
}
運行結果:

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/262079.html
標籤:其他
下一篇:Codeforces Round #702 (Div. 3)D. Permutation Transformation
