C# 字符串操作汇总 :
String 属性 :
名称 | 作用 |
---|---|
Length | 字符串的长度 |
String 方法 :
名称 | 作用 |
---|---|
IndexOf | 匹配索引 |
Substring | 字符串截取 |
ToCharArray | 字符串转字符数组 |
ToUpper和ToLower | 大小写转换 |
PadLeft和PadRight | 填充对齐 |
Trim | 截头去尾 |
Insert和Remove | 插入和删除 |
Replace | 替换字符串 |
Split | 分割为字符串数组 |
Concat、Join、StringBuilder.Append | 连接字符串 |
读取指定字符、字符长度 :
string str = "ABCD";
Console.WriteLine(str[0]); //输出"A"
Console.WriteLine(str.Length); //输出4
字符串转字符数组 ( ToCharArray ) :
string str = "ABCD";
char[] arr = str.ToCharArray(); //把字符串打散成字符数组{'A','B','C','D'}
Console.WriteLine(arr[0]); //输出数组的第一个元素,输出"A"
字符串截取 ( Substring ) :
string str = "ABCD";
Console.WriteLine(str.Substring(1)); ///从第2位开始(索引从0开始)截取一直到字符串结束,输出"BCD"
Console.WriteLine(str.Substring(1, 2)); //从第2位开始截取2位,输出"BC"
匹配索引 ( IndexOf ) :
string str = "ABCDEFG";
Console.WriteLine(str.IndexOf('A')); ///从字符串头部开始搜索第一个匹配字符A的位置索引,输出"0"
Console.WriteLine(str.IndexOf("BCD")); //从字符串头部开始搜索第一个匹配字符串BCD的位置,输出"1"
Console.WriteLine(str.LastIndexOf('C')); //从字符串尾部开始搜索第一个匹配字符C的位置,输出"2"
Console.WriteLine(str.LastIndexOf("AB")); //输出"0"
Console.WriteLine(str.IndexOf('Z')); //没有匹配,输出"-1"
Console.WriteLine(str.Contains("ABCD")); //判断字符串中是否存在另一个字符串"ABCD",输出true
大小写转换 ( ToUpper和ToLower ) :
string str ="abCD";
Console.WriteLine(str.ToLower()); /// 转化为小写,输出"abcd"
Console.WriteLine(str.ToUpper()); // 转化为大写,输出"ABCD"
填充对齐 ( PadLeft和PadRight ) :
string str ="ABCD";
Console.WriteLine(s.PadLeft(6, '_')); //使用'_'填充字符串左部,使它扩充到6位总长度,输出"__ABCD"
Console.WriteLine(s.PadRight(6, '_')); //使用'_'填充字符串右部,使它扩充到6位总长度,输出"ABCD__"
截头去尾 ( Trim ) :
string str = "__AB__CD__";
Console.WriteLine(str.Trim('_')); // 移除字符串中头部和尾部的'_'字符,输出"AB__CD"
Console.WriteLine(str.TrimStart('_')); // 移除字符串中头部的'_'字符,输出"AB__CD__"
Console.WriteLine(str.TrimEnd('_')); // 移除字符串中尾部的'_'字符,输出"__AB__CD"
插入和删除 ( Insert和Remove ) :
string str ="ABCD";
Console.WriteLine(str.Insert(1, "xxx")); //在字符串的第1位后处插入字符串"xxx",输出"AxxxBCD"
Console.WriteLine(str.Remove(1)); //字符串第1位后面的所有字符都删除,输出"A"
Console.WriteLine(str.Remove(0, 2)); //从字符串的第0位开始删除2个字符,输出"CD"
替换字符串 ( Replace ) :
string str ="A_B_C_D";
Console.WriteLine(str.Replace('_', '-')); //把字符串中的'_'字符替换为'-',输出"A-B-C-D"
Console.WriteLine(str.Replace("_", "")); //把字符串中的"_"替换为空字符串,输出"A B C D"
分割为字符串数组 ( Split ) :
用法一 :
string str = "name|age|work_age";
string[] temp = str.Split('|'); //字符一定要是单引号
for (var i = 0; i < temp.Length; i++)
{
Console.WriteLine(temp[i]);
}
输出结果 :
用法二 :
- tips : 还可以使用 字符数组来裁剪字符串
string str = "name|age|work_age";
string[] temp = str.Split(new char[2] { '|','_'});
输出结果 :
使用字符数组可以裁剪多个字符 .
用法三 :
注意 :
StringSplitOptions 有两个选项 :
StringSplitOptions.RemoveEmptyEntries
表示要省略返回的数组中的空数组元素StringSplitOptions.None
可以传入多个字符串 , 和用法二类似 .
string str = "name|age|work_age";
string[] temp = str.Split(new string[] {"|age|"}, StringSplitOptions.RemoveEmptyEntries);
输出结果 :
格式化 ( 静态方法Format ) :
Console.WriteLine(string.Format("{0} + {1} = {2}", 1, 2, 1+2));
Console.WriteLine(string.Format("{0} / {1} = {2:0.000}", 1, 3, 1.00/3.00));
Console.WriteLine(string.Format("{0:yyyy年MM月dd日}", DateTime.Now));
连接字符串 ( 静态方法Concat、Join和实例方法StringBuilder.Append )
string str ="A,B,C,D";
string[] arr = str.Split(','); // arr = {"A","B","C","D"}
Console.WriteLine(string.Concat(arr)); // 将一个字符串数组连接成一个字符串,输出"ABCD"
Console.WriteLine(string.Join(",", arr)); // 以","作为分割符号将一个字符串数组连接成一个字符串,输出"A,B,C,D"
StringBuilder sb = new StringBuilder(); // 声明一个字符串构造器实例
sb.Append("A"); // 使用字符串构造器连接字符串能获得更高的性能
sb.Append('B');
Console.WriteLine(sb.ToString());// 输出"AB"