String常用类
字符串判断
C#中有2种字符串判断,
1. ==
2. 字符串对象.Equals(要比较的字符串);
提取(截取)字符串
subString(起始位置); -->从起始位置到末尾
subString(起始位置,长度);
字符串修剪
字符串对象.Trim() -->去除空格
字符串对象.Tirm('去除左右两边的字符');
字符串转大小写
字符串对象.ToUpper();
字符串对象.ToLower();
拆分字符串
字符串对象.Split('拆分的字符'); 返回值:String[]
合并字符串
String.Join('进行连接的字符',字符串数组)
获取字符下标
字符串对象.IndexOf('字符') -->获取第一个出现的下标
字符串对象.LastIndexOf('字符') -->获取最后一个字符的下标
字符串优化
频繁处理字符串需要使用:StringBuilder
常用方法:
1. Append() -->拼接
2. AppendFormat() -->处理占位符
3. AppendLine() -->拼接完会换行
4. Insert(位置,插入的内容) -->插入
案例一
从控制台输入一个邮箱,
1、验证邮箱的格式是否正确(包含.包含@ @必须在点之前)
2、输出邮箱的用户名和域名
1 //从控制台输入一个邮箱,2 //控制台输入
3 Console.Write("请输入你的邮箱:");4 String email =Console.ReadLine();5 //1、验证邮箱的格式是否正确(包含.包含@ @必须在点之前)
6 int indexDian = email.IndexOf('.');7 int indexAnDe = email.IndexOf('@');8 if (indexDian == -1 || indexAnDe == -1)9 {10 Console.WriteLine("请输入正确的邮箱格式!");11 }12 else if (indexDian <=indexAnDe)13 {14 Console.WriteLine("@必须在点之前");15 }16 else
17 {18 //2、输出邮箱的用户名和域名 123@qq.com
19 int index = email.IndexOf('@');20 String name = email.Substring(0, index);21
22 String yuMing = email.Substring(index+1);23
24 Console.WriteLine("用户名:{0}",name);25 Console.WriteLine("域名:{0}",yuMing);26 }27 //防止一闪而过
28 Console.ReadLine();
案例二
1 while (true)
{
//控制台输入信息
Console.Write("请输入身份证:");
String id = Console.ReadLine();
Console.Write("请输入手机号:");
String phone = Console.ReadLine();
Console.Write("请输入座机号:");
String landline = Console.ReadLine();
//身份证必须是16-18位
if (!(id.Length == 16 || id.Length == 18))
{
Console.WriteLine("身份证号必须是16或十八位");
continue;
}
//手机号必须是11位
if (!(phone.Length == 11))
{
Console.WriteLine("手机号必须是11位");
continue;
}
//座机区号必须4位,电话号码必须7位
String[] number = landline.Split('-');
String num1 = number[0];
String num2 = number[1];
if (!(num1.Length == 4) && !(num2.Length == 7))
{
Console.WriteLine("座机区号必须4位,电话号码必须7位");
continue;
}
Console.WriteLine("注册成功");
break;
}
Console.ReadLine();
案例三
从控制台输入姓名的拼音,拼音中间使用空格隔开,如waNG li li
在控制台上输出WangLiLi(每个拼音的首字母大写,后面小写)
1 //控制台输入
2 Console.Write("请输入姓名拼音:");3 String name =Console.ReadLine();4 //字符串拆分
5 String[] names = name.Split(' ');6 //循环
7 foreach (String nameSplit innames)8 {9 String nameFirst = nameSplit.Substring(0, 1);10 String nameLast = nameSplit.Substring(1);11 Console.Write(nameFirst.ToUpper()+nameLast.ToLower());12 }13 //防止一闪而过
14 Console.ReadLine();
输入:zhang san
输出:ZhangSan
案例四
使用StringBuilder完成插入,控制台输入一串数字,每隔三个位置插入一个,
1 //控制台输入数字 123456782 //结果: 12,345,6783 //控制台接收数据
4 Console.Write("请输入一串数字:");5 String num =Console.ReadLine();6 //StringBuilder
7 StringBuilder sb = newStringBuilder();8 sb.Append(num);9 //循环
10 for (int i = num.Length - 3; i > 0; i -= 3)11 {12 //插入,
13 sb.Insert(i, ',');14 }15 Console.WriteLine(sb.ToString());16
17 //防止一闪而过
18 Console.ReadLine();