字符串提供的各种方法
- Length:获得当前字符串中的字符的个数
- ToUpper:将字符串转换成大写
- ToLower:将字符串转换成小写程序
- Equals(lessonTwo,StringComparison.OrdinalIgnoreCase):比较两个字符串,忽略大小写
- Split():分割字符串,返回字符串类型的数组
- Substring():截取字符串,在截取的时候包含要截取的下标位置
- IndexOf():判断某个字符串在字符串中第一次出现的位置,返回一个下标,如果没有返回-1
- LastIndexOf(): 判断某个字符串子啊字符串中最后出现的位置,返回一个下标,如果没有返回-1
- StartWith():判断以...开始
- EndsWith(): 判断以...结束
- Replace():将字符串中某个字符串替换成一个新的字符串
- Contains():判断某个字符串是否包含指定的字符串
- Trim():去掉字符串两端的空格
- TrimEnd():去掉字符串前端的空格
- TrimStart():去掉字符串后端的空格
- string.IsNullOrEmpty():判断一个字符串是否为空或者null
- string.Join(): 将数组按照指定的字符串连接,返回一个字符串
操作密集型字符串 StringBuilder
string 类型在进行运算时,会产生一个新的实例,而StringBuilder不会,所以大量字符串拼接或者频繁对某一个字符串进行赋值的时需要使用StringBuilder而不要使用string
StringBuilder sb = new StringBuilder();
string s = null;
for (int i = 0; i < 11451419; i++)
{
//不使用字符串拼接,效率会非常低
//s += i;
sb.Append(i);
}
Console.WriteLine(sb.ToString());
字符串方法
大小写转换方法
//将字符串转换成大写
Console.WriteLine("abc".ToUpper());
//将字符串转换为小写
Console.WriteLine("ABC".ToLower());
字符串等值方法
//判断字符串是否相等(两个参数,第二个参数可以忽略大小写)
if ("abc".Equals("ABC",StringComparison.OrdinalIgnoreCase))
Console.WriteLine(true);
else
Console.WriteLine(false);
分割字符串方法
//分割字符串Split
string s3 = "123,456+789_+_+_+_+_+";
char[] chars = { ',', '+','_'};
//Split方法虽然可以通过识别chars内的字符进行处理,但不加参数时仅会把S3内符合的字符替换为空,不会进行合并,需要添加参数
string[] s4 = s3.Split(chars, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < s4.Length; i++)
Console.WriteLine(s4[i]);
//Split方法小练习
/* 从日期字符串"2008-08-08"中分析出年月日,2008年08月08日*/
string s5 = "2008-08-08";
string[] date = s5.Split('-',StringSplitOptions.RemoveEmptyEntries);
string dateNew = "";
dateNew = date[0] + "年"+date[1]+"月"+date[2]+"日";
Console.WriteLine(dateNew);
字符串替换方法
//字符串替换
string s6 = "山本,我日你先人";
if (s6.Contains("日你"))
{
//replace返回一个新字符串
s6 = s6.Replace("日你", "**");
}
Console.WriteLine(s6);
截取字符串方法
//Substring 截取字符串
string s7 = "逸一时,误一世,逸久逸久罢己龄";
for (int i = 0; i < s7.Length; i++)
{
Console.WriteLine(s7.Substring(i));
}
//EndWith和StartWith
string s8 = "这是一句话";
Console.WriteLine(s8.EndsWith("话"));
Console.WriteLine(s8.EndsWith("一句"));
//如果方法体内的是完整的字符串,则判断为既是以他开头也是以他结尾的字符串,都为true
Console.WriteLine(s8.EndsWith("这是一句话"));
Console.WriteLine(s8.StartsWith("这是"));
Console.WriteLine(s8.StartsWith("是"));
Console.WriteLine(s8.StartsWith("这是一句话"));
字符串下标定位方法
//indexOf 返回对应字符串所在下标 有两个参数 第一个是需要查找的字符 第二个是从字符串的第几位开始找 找不到返回-1
Console.WriteLine(s8.IndexOf("一"));
Console.WriteLine(s8.IndexOf("一",3));
//LastIndexOf 和Substring配合
//LastIndexOf 返回字符串中最后出现该字符的下标
string s9 = @"c:\a\v\d\fg\fds\gfd\df\g\sdf\fdg\dfsgsdgsdfvcs\f\dsdgsdcg\vd\abd.AVI";
int index = s9.LastIndexOf('\\');
Console.WriteLine(s9.Substring(index+1));
移除字符串头和尾的所有空格
//Trim()移除字符串头和尾的所有空格 中间的空格不去掉
string s10 = " I'm a China boy ";
//去掉两端的空格
Console.WriteLine(s10.Trim());
//去掉前面的空格 去掉后面的空格
Console.WriteLine(s10.TrimStart());
Console.WriteLine(s10.TrimEnd());
判断字符串是否为空
//string.IsNullOrEmpty(str)判断是否为空
string s11 = "";
Console.WriteLine(string.IsNullOrEmpty(s11));
字符串拼接
//string.Join(str,str[]) 使用str中的字符把数组str[]中的字符串连在一起,并用str中的字符来进行分割(最后一个字符串末尾不添加),返回一个新字符串。
string[] sb1 = { "张三", "李四", "王五" };
Console.WriteLine(string.Join("|",sb1));