C⼏种截取字符串的⽅法(splitSubstringReplaceremove)
C#截图字符串常⽤的⽅法有 split 、Substring、Replace、remove等。
split的使⽤:
1. Split( Char ())
返回的字符串数组包含此实例中的⼦字符串(由指定 Unicode 字符数组的元素分隔)。
根据单个分隔字符⽤split截取。
例如 复制代码代码如下:
string st="GT123_1";
string[] sArray=st.Split(‘_’);// ⼀定是单引
即可得到sArray[0]="GT123",sArray[1]="1";
2.利⽤多个字符来分隔字符串
例如 复制代码代码如下:
string str = "GTAZB_JiangjBen_123";
string[] sArray = str.Split(new char[2] { 'j', '_' });
foreach(string e in sArray)
{ Console.WriteLine(e); }
得到sArray[0]="GTAZB",sArray[1]="Jiang",sArray[2]="Ben",sArray[3]="123";
3.Split( String (), StringSplitOptions)
返回的字符串数组包含此字符串中的⼦字符串(由指定字符串数组的元素分隔)。参数指定是否返回空数组元素。 RemoveEmptyEntries表⽰要省略返回的数组中的空数组元素
根据字符串或字符串组来截取字符串
例如 复制代码代码如下:
string str = "GTAZB_JiangjBen_123";
string[] sArray = str.Split( new string[]{"Ji","jB"}, StringSplitOptions.RemoveEmptyEntries);
foreach(string e in sArray)
{ Console.WriteLine(e); }
得到sArray[0]="GTAZB_",sArray[1]="ang",sArray[2]="en_123";
Substring的使⽤:
1. Substring(Int32, Int32)
从此实例检索⼦字符串。⼦字符串从指定的字符位置开始且具有指定的长度。
提取字符串中的第i个字符开始的长度为j的字符串;
例如 复制代码代码如下:
string str = "GTAZB_JiangjBen_123";
int start=3,length=8;
Console.WriteLine(str.Substring(start-1, length));
输出得到AZB_Jian。
2. Substring(Int32)
从此实例检索⼦字符串。⼦字符串从指定的字符位置开始。
提取字符串中右数长度为i的字符串
复制代码代码如下:
string str = "GTAZB_JiangjBen_123";
string tSt; int i=5;
tSt = str.Substring(str.Length - i);
Console.WriteLine(tSt);
输出n_123;
Replace的使⽤:
1. Replace(String, String)
返回⼀个新字符串,其中当前实例中出现的所有指定字符串都替换为另⼀个指定的字符串。
替换字符串中的特定字符串
复制代码代码如下:
string str = "GTAZB_JiangjBen_123";
string tSt;
tSt = str.Replace("123","321");
Console.WriteLine(tSt);
输出GTAZB_JiangjBen_321
2. 删除字符串中的特定字符串Jiangj
复制代码代码如下:
string str = "GTAZB_JiangjBen_123";
string tSt; tSt = str.Replace("Jiangj","");
Console.WriteLine(tSt);
输出GTAZB_Ben_123
3. Replace(Char, Char)
c++中string的用法返回⼀个新字符串,其中此实例中出现的所有指定 Unicode 字符都替换为另⼀个指定的 Unicode 字符。 下⾯的⽰例将⼀系列数字之间的空⽩替换为逗号,从⽽创建以逗号分隔的值列表。
public static void Main()
{
string str = "1 2 3 4 5 6 7 8 9";
Console.WriteLine("Original string: \"{0}\"", str);
Console.WriteLine("CSV string: \"{0}\"", str.Replace(' ', ','));
}
输出:Original string: "1 2 3 4 5 6 7 8 9"
CSV string: "1,2,3,4,5,6,7,8,9"
remove的使⽤:
1. Remove(Int32, Int32)
从此实例中的指定位置开始删除指定数⽬的字符。
删除指定位置(第i个)的指定长度(length)的字符串
复制代码代码如下:
string str = "GTAZB_JiangjBen_123";
int i=5,length=8;
ve(i, length);
console.writeline(str);
输出GTAZBen_123。
2. Remove(Int32)
删除此字符串中从指定位置到最后位置的所有字符。
string s = "abc---def";
Console.WriteLine("{0}", s.Remove(3));
输出:abc
----------------------------------------------------------------------------------------------------------------
public string[] Split(params char[] separator)
Split ⽅法提取此字符串中的⼦字符串,这些⼦字符串由 separator 参数中的⼀个或多个字符串分隔,
然后该⽅法将这些⼦字符串作为数组的元素返回。 Split ⽅法使⽤区分⼤⼩写的序号排序规则执⾏⽐较,从⽽查分隔符。
Split ⽅法忽略 separator 的任何值为 Nothing 或空字符串 ("") 的元素。 为了在 separator 中的字符串具有公共字符的情况下避免出现不明确的结果, Split 操作从实例值的开始进⾏到结尾,并匹配 separator 中与实例中的分隔符相等的第⼀个元素。 实例中⼦字符串的出现顺序优先于 separator 中元素的顺序。 例如,考虑值为“abcdef”的实例。如果 separator 中的第⼀个元素为“ef”,且第⼆个元素为“bcde”,则拆分操作的结果将是“a”和“f”。 这是因为先遇到实例中的⼦字符串“bcde”,且它匹配 separator 中的元素,然后才遇到⼦字符串“f”。 不过,如果 separator 的第⼀个元素为“bcd”,且第⼆个元素为“bc”,则拆分操作的结果将
是“a”和“ef”。 这是因为“bcd”是 separator 中第⼀个与实例中的分隔符匹配的分隔符。 如果颠倒分隔符的顺序,使得第⼀个元素为“bc”且第⼆个元素为“bcd”,则结果将是“a”和“def”。
性能注意事项
Split ⽅法为返回的数组对象分配内存,同时还为每⼀个数组元素分配⼀个 String 对象。 如果您的应⽤程序要求达到最佳性能,或者如果在您的应⽤程序中内存分配管理很关键,请考虑使⽤ IndexOf 或 IndexOfAny ⽅法,也可以选择使⽤ Compare ⽅法,在字符串中定位⼦字符串。 如果在分隔符字符处
分割字符串,请使⽤ IndexOf 或 IndexOfAny ⽅法在字符串中定位分隔符字符。 如果在分隔符字符串处分割字符串,请使⽤ IndexOf 或IndexOfAny ⽅法定位分隔符字符串的第⼀个字符。 然后使⽤ Compare ⽅法确定第⼀个字符后⾯的字符是否等于分隔符字符串的其余字符。 此外,如果在多个 Split ⽅法调⽤中使⽤相同的字符集拆分字符串,请考虑创建⼀个数组并在每个⽅法调⽤中都引⽤该数组。 这可以极⼤地减少每个⽅法调⽤的额外系统开销。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论