字符串常用处理方法
1.“改变”字符串
字符串的不可变性,在内存中,字符串一旦生成,将不会改变。如果一定要更改字符串中的某个字符,可以使用string.ToCharArray()方法将字符串复制一份,变成一个字符数组,这样就可以更改了。
1 string str = "I have a dream!!!"; 2 char[] charStr=str.ToCharArray(); 3 charStr[0]=‘Y‘; 4 str = new string(charStr); 5 Console.WriteLine(str); 6 Console.ReadKey(true);
输出结果:
Y
have a dream!!!
2.分割与合并;截取、插入、替换与移除;
(1)分割:将一个字符串用指定的一个或多个字符分割,可以用string[] <strName>.Split(params char[] separator),但是,如果字符串中连续出现多个分隔符,得到的数组中会含有空字符串;
这时,我们可以用带有StringSplitOptions options参数的string.Split(char[] separator,StringSplitOptions options),options中的RemoveEmptyEntires为移除结果数组中的空字符串。
string[] <strName>.Split(params char[] separator)和string Split(char[] separator,StringSplitOptions options)中的分隔符可以为字符串。
1 string str = "吃葡萄不吐葡葡萄皮,不吃葡萄倒吐葡萄葡萄皮。"; 2 string[] str1 = str.Split(new char[] { ‘葡‘ }); 3 string[] str2 = str.Split(new char[] { ‘葡‘, ‘不‘ }, StringSplitOptions.RemoveEmptyEntries); 4 string[] str3 = str.Split(new string[] { "葡萄" },StringSplitOptions.None); 5 string[] str4 = str.Split(new string[] { "葡萄", "不" }, StringSplitOptions.RemoveEmptyEntries); 6 Console.ReadKey(true);
输出结果:
str1与str3因为没有启用StringSplitOptions.RemoveEmptyEntries选项,分隔后的数组中含有空字符串。
(2)合并:利用string.Join();
1 string str = "I have a dream!!!"; 2 string[] str1 = str.Split(new char[] { ‘ ‘ }); 3 str = string.Join(" ", str1); 4 Console.WriteLine(str); 5 Console.ReadKey(true);
输出结果:
I have a dream!!!
这里的分隔符‘ ‘,没有连续出现,可以不用StringSplitOptions.RemoveEmptyEntries选项。
(3)截取:利用string.Substring();
1 string str = "I have a dream!!!"; 2 string str1 = str.Substring(0,6); 3 string str2 = str.Substring(7); 4 Console.WriteLine("{0}\n{1}\n",str1,str2); 5 Console.ReadKey(true);
输出结果:
I have
a Dream!!!
(4)插入:利用string.Insert();
1 string str = "I have a dream!!!"; 2 str = str.Insert(14, ",a song to sing"); 3 Console.WriteLine(str); 4 Console.ReadKey(true);
输出结果:
I have a dream,a song to sing!!!
(5)替换:利用string.Replace();
1 string str = "I have a dream!!!"; 2 str = str.Replace("I", "We"); 3 Console.WriteLine(str); 4 Console.ReadKey(true);
输出结果:
We have a dream!!!
Replace()中的字符串,也可以换成字符。
(6)移除:利用string.Remove();
1 string str = "I have a dream!!!"; 2 string str1 = str.Remove(14); 3 string str2 = str.Remove(14, 2); 4 Console.WriteLine("{0}\n{1}",str1,str2); 5 Console.ReadKey(true);
输出结果:
I
have a dream
I have a dream!
未完待续!
原文:http://www.cnblogs.com/dlwcg/p/3561884.html