根据平常的一些习惯以及遇到的一些问题对C#String类的一些方法进行总结。
- 字符串的生成
char[] cha = new char[] { '字', '符', '串', '是', '一', '种', '引', '用', '类', '型' };
string str = "字符串是一种引用类型";//直接生成
string str1 = new string(cha, 6, 4);//由字符数组中的指定位数生成字符串
string str2 = new string(cha);//由字符数组生成字符串
Console.WriteLine(str + "\n" + str1 + "\n" + str2);
2.字符串的大小写转换
string str1 = "USING PYTHON";
string str2 = "life is short";
Console.WriteLine(str1.ToLower());
Console.WriteLine(str2.ToUpper());
- 去除指定字符串
string str = "**Life is short**use**python**";
string str1 = str.Trim('*');//尽去除左右两侧指定
string str2 = str.TrimStart('*');//仅去除左侧指定字符
string str3 = str.TrimEnd('*');//仅去除右侧指定字符
Console.WriteLine(str + "\n" + str1 + "\n" + str2 + "\n" + str3);
-
合并字符串
string.concat、string.join、str1+str2皆能实现字符串的连接合并。 -
字符串的替换
str.replace(oldChar,newChar)
str.replace(oldStr,newStr)
6.Contains方法
str.contains(str)
str.contains(char)
- 字符串查找
string str = "Life is short, use Python";
Console.WriteLine(str.IndexOf('i'));//字符出现的位置
Console.WriteLine(str.IndexOf("short"));//字符串中第一个字符出现的位置
-
分割字符串
将字符串分割成字符串数组
string str = "恰恰用心时,恰恰无心用。无心恰恰用,用心恰恰无。";
var buf = str.Split('。');//仅分割句号
var buf2 = str.Split(new char[] { ',', '。' });//分割句号和逗号
foreach (var l in buf)
{
Console.WriteLine(l);
}
foreach (var t in buf2)
{
Console.WriteLine(t);
}
结果显示
split方法的重载
System.StringSplitOptions.RemoveEmptyEntries
//省略返回数组中的空数组元素
System.StringSplitOptions.None
//包含返回的空数组元素
- 移除字符串
str.remove(int startIndex)
str.remove(int startIndex,int count)
- 正则表达式的应用
首先Using System.Text.RegularExpressions;
字符 | 说明 | 示例 |
---|---|---|
\d | 匹配数字(0~9) | 123 |
\D | 匹配非数字 | ABC |
\w | 匹配任意单个字符 | ‘A’,‘B’,‘C’ |
\W | 匹配任意非单个字符 | “ABC” |
\s | 匹配空白字符 | \d\s\d匹配“3 3” |
\S | 匹配非空字符 | \d\S\d匹配“363” |
. | 匹配任意字符 | …匹配ab2 |
[…] | 匹配括号中的任意字符 | [b-f]匹配b、c、d、e、f |
[^…] | 匹配非括号的字符 | [^b-z]匹配a |
重复匹配
重复语法 | 语法解释 |
---|---|
{n} | 匹配n次字符 |
{n,} | 匹配n次及n次以上 |
{n,m} | 匹配n到m次 |
? | 匹配0次或者1次 |
+ | 匹配一次及以上 |
* | 匹配0次以上 |
具体应用
string tex = @"\s{1,}";//识别一到多个空格
Regex reg = new Regex(tex);
var buf = reg.Split(data);
year = Convert.ToInt32(buf[0]);
month = Convert.ToInt32(buf[1]);
day = Convert.ToInt32(buf[2]);
hour = Convert.ToInt32(buf[3]);
minute = Convert.ToInt32(buf[4]);
second = Convert.ToDouble(buf[5]);
参考书籍 《C#实践教程第2版》——清华大学出版社 李乃文 刘好增 编著