資料來源
[C#]String常用技巧整理(IndexOf、LastIndexOf、Substring、Split)
String.IndexOf
String.IndexOf 方法 (Char, Int32, Int32)
報告指定字符在此範例中的第一個匹配項的索引。搜索從指定字符位置開始,並檢查指定數量的
字符位置。
String.IndexOf(value, startIndex, count)
參數
value:要查找的 Unicode 字符。
startIndex:搜索起始位置。
count:要檢查的字符位置數。
返回值(Int32):
如果找到該字符,則為value 的索引位置;否則如果未找到,則為-1。
範例:
string str = "深圳市盈基實業有限公司國際通鄧事文*深圳市盈基實業有限公司國際通鄧事文";
Label1.Text = str.IndexOf("中國").ToString();//返回-1
Label1.Text = str.IndexOf("盈基").ToString();//返回3
Label1.Text = str.IndexOf("盈基",10).ToString();//返回21 說明:這是從第10個字符開始查起。
Label1.Text = str.IndexOf("鄧",15,10).ToString();//返回-1
Label1.Text = str.IndexOf("鄧",15,20).ToString();//返回-32 說明:從第15個字符開始查找,要查
找的範圍是從第15個字符開始後20個字符,即從第15-35個字符中查找。
<---------------------------------------------------------------------------------------------------------->
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。
PS : IndexOf、LastIndexOf都是返回一個位置,是個整數值;找不到都返回-1;
IndexOf是從左向右查,LastIndexOf是從右向左查,不管是IndexOf還是LastIndexOf,索引序列都是從左到右的
(起始值是0)
<---------------------------------------------------------------------------------------------------------->
String.Substring
String.Substring 方法
從此實例檢索子字符串。
名稱 說明
String.Substring (Int32) 從此實例檢索子字符串。子字符串從指定的字符位置開始。
String.Substring (Int32, Int32) 從此實例檢索子字符串。子字符串從指定的字符位置開始且具有指定的長度。
示例:
string str = "深圳市盈基實業有限公司國際通鄧事文*深圳市盈基實業有限公司國際通鄧事文";
Label1.Text = str.Substring(11);//返回“國際通鄧事文*深圳市盈基實業有限公司國際通鄧事文”
Label1.Text = str.Substring(11,7);//返回“國際通鄧事文*”
<---------------------------------------------------------------------------------------------------------->
String.Split
1,用字符串分隔:
using System.Text.RegularExpressions;
string str="aaajsbbbjsccc";
string[] sArray=Regex.Split(str,"js",RegexOptions.IgnoreCase);
foreach (string i in sArray) Response.Write(i.ToString() + "<br>");
輸出結果:
aaa
bbb
ccc
2,用多個字符來分隔:
string str="aaajbbbscccjdddseee";
string[] sArray=str.Split(new char[2]{'j','s'});
foreach(string i in sArray) Response.Write(i.ToString() + "<br>");
輸出結果:
aaa
bbb
ccc
ddd
eee
3,用單個字符來分隔:
字符串str=“aaajbbbjccc”;
字符串[] sArray= str.Split(“J”);
的foreach(字符串sArray我)回复於(i.ToString()+“ - ”);
輸出結果:
aaa
bbb
ccc
留言