Bootstrap

C#中常见的字符串的处理方法

1.Format

String name = "小王";
int age = 20;
String word = "大家好";
String message = "{0},我是{1},今年{2}岁。";
Console.WriteLine(string.Format(message,word,name,age));


2.IsNullOrEmpty 和 IsNullOrWhiteSpace

IsNullOrEmpty用来判断输入的字符串是否为空,如果是空则报错,字符串可以是空格。

IsNullOrWhiteSpace用来判断输入的字符串是否为空或空格,如果是空或空格则报错。

string username ="用户名";
string password ="密码123456";
if (string.IsNullOrWhiteSpace(username))
{
throw new ArgumentNullException("username is null");
}
else
{
if (string.IsNullOrEmpty(password))
{
throw new ArgumentNullException("password is null");
}
}
Console.WriteLine("注册成功!");

3.Equals

if(str.ToLower().Equals("hello"))的功能与if(str.ToLower() == "hello")相等。

ToLower()是把字符全部转化为小写的函数。

string str = "Hello";
if(str.ToLower().Equals("hello"))
{
Console.WriteLine("相等");
}
else
{
Console.WriteLine("不相等");
}

运行结果为:相等

4.Contains

判断字符串是否包含输入的字符串

string str = "Hello";
if (str.Contains("ello"))
{
Console.WriteLine("包含");
}
else
{
Console.WriteLine("不包含");
}

运行结果为:包含

5.Length

用来获取字符串的长度

string str = "Hello";
Console.WriteLine(str.Length);

运行结果:5

6.Substring

Substring(0)   截取第0个后面的字符

Substring(0,5)  截取第0个后面的前五个字符

Substring(str.Length-1)   截取最后1位字符

string str = "Hello,你好";
Console.WriteLine(str.Substring(0));
Console.WriteLine(str.Substring(0, 5));
Console.WriteLine(str.Substring(2, 5));
Console.WriteLine(str.Substring(6));
Console.WriteLine(str.Substring(str.Length - 1));

运行结果:

7.IndexOf

寻找字符的位置

string path = "C:\\学习\\笔记.docx";
int os = path.IndexOf("\\");
Console.WriteLine(os);

int pos = path.LastIndexOf("\\");//最后一个\\的位置
Console.WriteLine(pos);
int dotpos = path.LastIndexOf(".");//最后一个.的位置  
Console.WriteLine(dotpos);

string fileName = path.Substring(pos+1);//跳过一个\
Console.WriteLine(fileName);//最后的文件名
Console.WriteLine(fileName.Substring(0, dotpos - pos - 1));
string extName = path.Substring(path.LastIndexOf("."));
Console.WriteLine("扩展名是{0}", extName);

运行结果:

8.StartsWith 和 EndsWith

查找输入的字符是否是字符串的开头或者结尾

string path = "C:\\学习\\笔记.docx";
if (path.StartsWith("C:"))
{
Console.WriteLine("属于C盘的文件");
}

string extName = path.Substring(path.LastIndexOf("."));
Console.WriteLine("扩展名是{0}", extName);
if( path.EndsWith(".docx"))
{
Console.WriteLine("属于word 文档");
}else if(path.EndsWith(".jpg"))
{
Console.WriteLine("属于图片文档");
}else if (path.EndsWith(".mp4"))
{
Console.WriteLine("属于电影文档");
}

运行结果:

9.Remove

删除字符串中的字符

string path = "C:\\学习\\笔记.docx";
Console.WriteLine(path.Remove(path.LastIndexOf("."),1));

运行结果:

10.Revserse

将字符串反向输出

string str = "我是小孩";
Console.WriteLine(str.Reverse().ToArray());

运行结果:

11.Trim 和 Replace

Trim去掉字符串两边的空格

string str = " 我是  小孩 ";
Console.WriteLine(str.Trim());//只能去掉前面和后面的空格
Console.WriteLine(str.Replace(" ", ""));//将所有空格替换为空
str = str.Replace(" ", "");//将空格替换为空
Console.WriteLine(str);

运行结果:

12.Concat

用于字符之间连接

string str = "HelloWorld";
string first = str.Substring(0, 1);
Console.WriteLine(first.ToUpper() + str.Substring(1));
Console.WriteLine(string.Concat( first.ToUpper(), str.Substring(1) ));
Console.WriteLine(first.ToLower() + str.Substring(1));
Console.WriteLine(string.Concat( first.ToLower(), str.Substring(1) ));

运行结果:

13.Join 和 Split

Join用于将数组转化为字符串,Split用于将字符串变成一个数组,获取数组的每个元素

string[] names = {"小王","小李","小张"};
string st = "";
for (int i = 0; i < names.Length; i++)
{
 st += string.Concat(names[i], ",");
}
st=st.Remove(st.Length);
Console.WriteLine(st);
Console.WriteLine(string.Join(",",names));

string city = "泰安,济南,青岛,烟台";
string[]citys=city.Split(',');
foreach(string s in citys)
{ Console.WriteLine(s); }

运行结果:

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;