整理下操作字符串相关的属性和方法,主要是string和stringbuilder的使用。
字符串中可以包含转义符,如“\\n”(新行)和“\\t”(制表符)。
如果希望包含反斜杠,则它前面必须还有另一个反斜杠,如“\\”。
@ 符号会告知字符串构造函数忽略转义符和分行符。
string str = \"-hello,world-\";
一般用Trim来删除指定字符,或者去除空格
Console.WriteLine(str.Trim(\'-\'));//hello,world
Console.WriteLine(str.TrimEnd(\'-\'));//-hello,world
Console.WriteLine(str.TrimStart(\'-\'));//hello,world-
字符串访问,直接用索引即可,得到对应的字符
Console.WriteLine(str[1]);//输入h
字符串遍历成单字节
foreach (char myChar in str)
{
Console.WriteLine(\"{0}\", myChar);
}
输出.png
字符串转字节数组ToCharArray
char[] c = str.ToCharArray();
for (int i = 0; i < c.Length; i++)
{
Console.WriteLine(c[i]);
}
输出效果和遍历成单字节一样
分割字符串Split
string[] s = str.Split(\',\');
for (int i = 0; i < s.Length; i++)
{
Console.WriteLine(s[i]);//s[0]=-hello s[1]=world
}
多个不同的字符也可分割,例如
string s1 = \"hello-world*hello curry\";
string[] s2 = s1.Split(\'-\', \'*\', \' \');
for (int i = 0; i < s2.Length; i++)
{
Console.WriteLine(s2[i]);
}
此时输出为
分割字符串.png
串联字符串
Console.WriteLine(string.Join(\"*\",new object[]{12,\"hello\",DateTime.Now}));
Console.WriteLine(string.Join(\" \",12,\"hello\",36));
替换字符串
Console.WriteLine(str.Replace(\'-\', \'*\'));//*hello,world*
获取指定字符对应的索引位置
Console.WriteLine(str.IndexOf(\',\'));//6
Console.WriteLine(str.IndexOf(\'。\'));//-1 如果找到该字符,则为 value 的从零开始的索引位置;如果未找到,则为 -1。
Console.WriteLine(str.LastIndexOf(\'-\'));//12
Console.WriteLine(str.Contains(\'-\'));//true
截取字符串
Console.WriteLine(str.Substring(1));//hello,world-,从位置1开始到最后的全部截取出来
Console.WriteLine(str.Substring(1, 5));//hello,第一个为开始位置,第二个为长度
移除字符串
Console.WriteLine(str.Remove(1));//输出-,从位置1开始到最后的全部删除
Console.WriteLine(str.Remove(0, 6));//输出,world-
//第一个为开始位置,第二个为长度
字符串开头与指定的字符串匹配
Console.WriteLine(str.StartsWith(\"hello\"));//false
Console.WriteLine(str.StartsWith(\"-HELLO\", true, null));//true 忽略大小写,使用当前区域
字符串的大小写转换ToLower转小写,ToUpper转大写
Console.WriteLine(str.ToLower());
Console.WriteLine(str.ToUpper());//-HELLO,WORLD-
使字符串达到指定长度实现对齐
Console.WriteLine(str.PadLeft(15,\'-\'));//在字符左侧填充字符来达到指定的总长度,从而实现右对齐
Console.WriteLine(str.PadRight(15, \'-\'));//在字符右侧填充字符来达到指定的总长度,从而实现左对齐
stringbuilder的使用方法
首先new一个新的StringBuilder
StringBuilder sb = new StringBuilder(\"Hello World!\");
输出长度
Console.WriteLine(sb.Length);//12
sb.Capacity = 10;
设置最大长度为10
sb.EnsureCapacity(10);
设置要确保的最小容量
//向StringBuilder增加新元素
Console.WriteLine(sb.Append(\"123\"));
StringBuilder sb1 = new StringBuilder(\"Hello World!\");
Console.WriteLine(sb1.AppendFormat(\"第一个{0},第二个{1}\",\"Beijing\",2008));//注意第一个是从0开始
//向指定的索引位置插入字符串
Console.WriteLine(sb.Insert(6,\"beautiful \"));
//从指定的索引位置移除指定长度的字符
Console.WriteLine(sb.Remove(5,10));
//替换字符
Console.WriteLine(sb.Replace(\"!\",\"*\"));
//将StringBuilder转为String类型
Console.WriteLine(sb.ToString());
输出结果为
stringbuilder.png