今天遇到截取字符串的問題,在網上查了IndexOf、LastIndexOf、Substring這三種截取字符串的使用總結以下:spa
String.IndexOfcode
String.IndexOf 方法 (Char, Int32, Int32)
報告指定字符在此實例中的第一個匹配項的索引。搜索從指定字符位置開始,並檢查指定數量的字符位置。
String.IndexOf(value, startIndex, count)
參數
value:要查找的 Unicode 字符。
startIndex:搜索起始位置。
count:要檢查的字符位置數。
返回值(Int32):
若是找到該字符,則爲 value 的索引位置;不然若是未找到,則爲 -1。對象
String.LastIndexOf 方法
報告指定的 Unicode 字符或 String 在此實例中的最後一個匹配項的索引位置。
索引
名稱 | 說明 | |
String.LastIndexOf (Char) | 報告指定 Unicode 字符在此實例中的最後一個匹配項的索引位置。 | |
String.LastIndexOf (String) | 報告指定的 String 在此實例內的最後一個匹配項的索引位置。 | |
String.LastIndexOf (Char, Int32) | 報告指定 Unicode 字符在此實例中的最後一個匹配項的索引位置。該搜索從指定字符位置開始。 | |
String.LastIndexOf (String, Int32) | 報告指定的 String 在此實例內的最後一個匹配項的索引位置。該搜索從指定字符位置開始。 | |
String.LastIndexOf (String, StringComparison) | 報告指定字符串在當前 String 對象中最後一個匹配項的索引。一個參數指定要用於指定字符串的搜索類型。 | |
String.LastIndexOf (Char, Int32, Int32) | 報告指定的 Unicode 字符在此實例內的子字符串中的最後一個匹配項的索引位置。搜索從指定字符位置開始,並檢查指定數量的字符位置。 | |
String.LastIndexOf (String, Int32, Int32) | 報告指定的 String 在此實例內的最後一個匹配項的索引位置。搜索從指定字符位置開始,並檢查指定數量的字符位置。 | |
String.LastIndexOf (String, Int32, StringComparison) | 報告指定字符串在當前 String 對象中最後一個匹配項的索引。參數指定當前字符串中的起始搜索位置,以及要用於指定字符串的搜索類型。 | |
String.LastIndexOf (String, Int32, Int32, StringComparison) | 報告指定的 String 對象在此實例內的最後一個匹配項的索引位置。參數指定當前字符串中的起始搜索位置、要搜索的當前字符串中的字符數量,以及要用於指定字符串的搜索類型。 |
示例:
string str = "深圳市盈基實業有限公司國際通鄧事文*深圳市盈基實業有限公司國際通鄧事文";
Label1.Text = str.LastIndexOf("鄧文").ToString();//返回-1
Label1.Text = str.LastIndexOf("鄧").ToString();//返回32
Label1.Text = str.LastIndexOf("鄧",8).ToString();//返回-1
Label1.Text = str.LastIndexOf("鄧",20).ToString();//返回14
Label1.Text = str.LastIndexOf("鄧",33).ToString();//返回32
說明:在指定的範圍內查找字符,這個範圍是上面的輸入的參數,理解爲,從索引0開始到指定的數值位置範圍內查找最後一個匹配的的字符串的位置。示例中,0-8中沒有「鄧」字,因此返回-1,0-20範圍中,有一個「鄧」字在索引14位置上,0-33範圍中有兩個「鄧」字,由於LastIndexOf是返回最後一個匹配項索引位置,因此返32,而不是14。字符串
String.Substring 方法
今後實例檢索子字符串。
string
名稱 | 說明 |
String.Substring (Int32) | 今後實例檢索子字符串。子字符串從指定的字符位置開始。 |
String.Substring (Int32, Int32) | 今後實例檢索子字符串。子字符串從指定的字符位置開始且具備指定的長度。 |
示例:
string str = "深圳市盈基實業有限公司國際通鄧事文*深圳市盈基實業有限公司國際通鄧事文";
Label1.Text = str.Substring(11);//返回 「國際通鄧事文*深圳市盈基實業有限公司國際通鄧事文」
Label1.Text = str.Substring(11,7);//返回 「國際通鄧事文*」table
Label1.Text = str.Substring(str.Length-3,3); // 返回鄧事文,即截倒數3位字符
ast
IndexOf、LastIndexOf都是返回一個位置,是個整數值;找不到都返回-1;
IndexOf是從左向右查,LastIndexOf是從右向左查,無論是IndexOf仍是LastIndexOf,索引序列都是從左到右的(起始值是0)
Substring是字符串截取,返回值是一個截取後的字符串。搜索