字符串处理
1.问题引入
判断用户输入的邮箱是否包含"@"
解决方法
1 int IndexOf(char/string value)
2 找到第一个匹配项所在的位置
3 如果找到则为索引位置,否则-1
4
5 static void Main(string[] args)
6 {
7 string email = "xiaoqiang@qq.com";
8 int position = email.IndexOf("@");
9 Console.WriteLine($"@所在的位置索引:"+position);
10 Console.ReadKey();
11 }
2.问题引入
如何判断用户密码长度是否符合要求
解决方法
1 string.Length;(返回值类型是int)
2 使用"Length"属性获取字符串的长度
3
4 static void Main(string[] args)
5 {
6 string userPwd = "88996677ABE";
7 int pwdLength = userPwd.Length;
8 Console.WriteLine($"密码长度{pwdLength}");
9 Console.ReadKey();
10 }
3. 问题引入
如何判定两个字符串内容相等
解决方法
1 使用"=="或"Equals"方法
2 如果判断两个对象是否相同可以用object的Equals()方法
3 {
4 static void Main(string[] args)
5 {
6
7 string name1 = "xiaowang";
8 string name2 = "xiaowang";
9 string name3 = "wang";
10 Console.WriteLine(name1==name2);
11 Console.WriteLine(name1.Equals(name2));
12 Console.WriteLine(object.Equals(name1, name2));
13 Console.WriteLine(name2 ==name3);
14 Console.ReadKey();
15
16 }
4.问题引入
根据用户的邮箱获取"用户名"
解决方法
string Substring(int startIndex,int length);
static void Main(string[] args)
{
string email = "xiaoqiang@qq.com";
string userName = email.Substring(0, email.IndexOf("@"));
Console.WriteLine("邮箱用户名:"+userName);
Console.ReadKey();
}
5.问题引入
1 回顾:使用占位符完成字符串的拼接
2
3 string name="小刘";
4 Console.WriteLine("我的名字是:"+name+"我的年龄是"+20);
5
6 string name="小刘";
7 Console.WriteLine("我的名字是{0},我的年龄是{1}",name,20);
8
9 字符串格式化Format()方法与其类似
10 string newString=string.Format("格式字符串",参数列表);
6.Format()方法的格式字符串中各种格式化定义字符
1 static void Main(string[] args)
2 {
3 string moneyTotal = string.Format("总金额:{0:C}", 255555);
4 Console.WriteLine(moneyTotal);
5 Console.ReadKey();
6
7 }
7.字符串为空和null的情况
1 空字符串的使用方法
2 if(name=""){}//分配一个长度为空的存储空间
3 if(name.Equals(string.Empty)){}//不分配存储空间,经常使用
4
5 总结判断字符串是否为空的3种方法
6 //性能从高到低
7 name.Length==0
8 name==string.Empty
9 name==""
10
11 注意:null和""的区别
8.其他常用字符串处理方法
1 Trim()方法:去掉前后多余空格
2 string name=" xiaowang";
3 name=name.Trim();
4
5 转换成小写/大写
6 string ToUpper();//转换成大写
7 string ToLower();//转换成小写
8
9 找到最后一个匹配项所在的索引(位置)
10 LastIndexOf(string value)
9.关于字符串的拼接(重点)
1 static void Main(string[]args])
2 {
3 string strText="我正在学习";
4 strText+=".NET平台";
5 strText+="与C#开发语言";
6 Console.WriteLine(strText);
7 }
8 每次修改strText,不是追加而是要创建一个新的字符串对象,造成内存浪费
9
10 使用StringBuilder类定义可变字符串,实现字符串的追加
11 方法 说明
12 Append 在结尾追加
13 Insert 在指定位置插入指定字符串
14 Remove 移除指定字符串
15
16 使用StringBuilder类修改上述代码
17 static void Main(string[] args)
18 {
19 StringBuilder myBuilder=new StringBuilder();
20 myBuilder.Append("我正在学习");
21 myBuilder.Append(".NET平台");
22 myBuilder.Append("与C#开发语言");
23 Console.WriteLine(myBuilder.ToString());
24 Console.ReadLine();
25 }