IndexOf、LastIndexOf、Substring的用法

今天遇到截取字符串的問題,在網上查了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

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.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是字符串截取,返回值是一個截取後的字符串。
搜索

相關文章
相關標籤/搜索