C#字符串处理
1.删除头尾指定字符串
(1)删除单一字符
eg : string A = "C#abcdefg#C";
①删除A的前后出现的字符'C',
A = A.Trim('C');
输出结果:#abcdefg#
②删除A前面的字符'C',
A = A.TrimStart('C');
输出结果:#abcdefg#C
③删除A后面的字符'C'
A=A.TrimEnd('C');
输出结果:C#abcdefg#
总结:A.Trim('C') 等效于 A.TrimStart('C').TrimEnd('C')
(2)删除多个字符(只以Trim函数为例)
eg:string B = "abbacdefgba"
首先看代码 B =B.Trim("ab".ToCharArray()),与删除单个字符有很大不同
这句代码的意思是删除字符串a首尾出现的字符'a'或者'b',直到出现一个既不是'a'也不是‘b’的字符出现,千万别理解成删除字符串“ab”
输出结果:cdefg
2.以指定的某个字符切断字符串
eg string A = "1111 2222 3333 4444 5555 6666";
现在我们要在A中,每遇到一次空格就切断一次,并保存于数组中:
string[] Arr = Regex.Split(A, " ", RegexOptions.IgnoreCase);
foreach(string item in A)
{
Console.WriteLine(item + "\r\n");
}
Console.ReadKey();
(需要加载命名空间System.Text.RegularExpressions)
输出结果:1111
2222
3333
4444
5555
6666
3.获取字符串中某个字符出现的次数
eg:string A = "010203040506070809";
int k = Regex.Matches(A, @"0").Count;
输出结果为:9
4.字符串的替换
eg :string a = "ABCD";
将B替换成E,a = a.Replace('B', 'E');
结果:AECD,第一个参数是需要被换的字符,第二个是需要换上去的字符
5.删除字符串的第N个字符
eg:string A = "123456789";
现在我要把A中的5给删除:
List<char> Arr = A.ToList();
Arr.RemoveAt(4);
A = new string(Arr.ToArray());
输出结果:12346789
5对应的是List中的第四个元素,是从0开始的
6.向字符串中添加指定字符串
string A = "1122334455";
现在我要每隔2个字符添加一个空格:
A = string.Join(" ", Regex.Matches(str, @"..").Cast<Match>().ToList());
输出结果为11 22 33 44 55
Join的第一个参数是string类型的,任何字符串都行,对应你需要添加进去的字符串,即空格
Matches的第一个参数是被添加的字符串,即A;第二个参数@".."表示每隔几个字符串,2个'.'表示每隔2个字符,3个就每隔3个;
另外,如果字符串的长度不能整除隔开的字符长度,即A的长度不是每隔n个字符中n的整数倍,那么最后一段不会显示出来
例如,将上面的A换成"112233445",同样是每隔两个字符添加空格,结果为:11 22 33 44,最后的一个5是不会显示的
7.字符串的截取
1.string str = "123456789";
取头n个字符(n = 4)
str = str.Substring(0,n)或者 str = str.Remove(n)
结果:1234
删除前n个字符(n = 4)
str = str.substring(n)或者str = str.remove(0,n)
结果:56789
取从第n个开始长度为m的子串(n = 4 ,m = 3)
str = str.substring(n,m)
结果:567
从第n个开始删除m个字符
str = str.remove(n,m)
结果:123489