1.创建字符串
string 变量名 = "字符串内容";
string str = "abcdrf"; | |
Console.WriteLine(str); |
2.获取字符串的长度
变量名.Length
相当于调用了一个计算长度的方法
string str = "abcdrf"; | |
Console.WriteLine(str); | |
int len = str.Length; | |
Console.WriteLine(len); |
3.比较字符串是否一样可以直接使用 == 进行比较
4.字符串进行连接是用 + 进行连接,注意如果是字符型的数字,这里的 + 就是进行的连接,而不是加法
5.可以将字符串看做成数组,那么想要获取对应位置的字符,可以用 字符串名字[字符串的序号]
6.字符串是不可变的量,对字符串只能有添加不能修改和删除
字符串拼接的原理
7.字符串的常用方法
1.CompareTo)方法,比较字符串的内容
2.Replace()用另一个字符或者字符串替换字符串中给定的字符或者字符串
3.Split(在出现给定字符的地方,把字符串拆分称一个字符串数组
4.SubString0在字符串中检索给定位置的子字符串
5.ToLower(把字符串转换成小写形式
6.ToUpper(把字符串转换成大写形式
7. Trim删除首尾的空白
8.Concat(方法,合并字符串
9.CopyTo(方法,把字符串中指定的字符复制到一个数组中
10.Format()方法,格式化字符串
11.IndexOf(方法,取得字符串第一次出现某个给定字符串或者字符的位置
12.IndexOfAny0方法,
13.Insert()把一个字符串实例插入到另一个字符串实例的制定索引处
14.Join()合并字符串数组,创建一个新字符串
//1.CompareTo()方法,比较字符串的内容 | |
string b = "123"; | |
int flag = 0; | |
flag = str.CompareTo(b); | |
Console.WriteLine(flag); //不相同返回1 | |
string c = "ab cd rf"; | |
flag = str.CompareTo(c); | |
Console.WriteLine(flag);//相同返回0 | |
Console.WriteLine("------------------------------------"); | |
//2.Replace()用另一个字符或者字符串替换字符串中给定的字符或者字符串 | |
str = str.Replace("a", "b"); | |
Console.WriteLine(str); | |
Console.WriteLine("------------------------------------"); | |
//3.Split()在出现给定字符的地方,把字符串拆分称一个字符串数组 | |
string[] sArray = str.Split(','); | |
foreach (string i in sArray) | |
Console.WriteLine(i.ToString()); | |
Console.WriteLine("------------------------------------"); | |
//4.SubString()在字符串中检索给定位置的子字符串,相当于保留的是该索引往后的字符串 | |
Console.WriteLine(str.Substring(10)); | |
Console.WriteLine("-------------------------------------"); | |
//5.ToLower()把字符串转换成小写形式 | |
Console.WriteLine(str.ToLower()); | |
Console.WriteLine("--------------------------------------"); | |
//6.ToUpper(把字符串转换成大写形式 | |
Console.WriteLine(str.ToUpper()); | |
Console.WriteLine("--------------------------------------"); | |
//7. Trim()删除首尾的空白 | |
Console.WriteLine(str.Trim()); | |
Console.WriteLine("--------------------------------------"); | |
//8.Concat()方法,合并字符串 | |
string con = string.Concat("123", "abc", 1233); | |
Console.WriteLine(con); | |
Console.WriteLine("---------------------------------------"); | |
//9.CopyTo()方法,把字符串中指定的字符复制到一个数组中 | |
char[] arr = { 'I', 'n', 'c', 'l', 'u', 'd', 'H', 'e', 'l', 'p' }; | |
str.CopyTo(1, arr, 0, 6); | |
foreach(char i in arr) | |
{ | |
Console.Write(i); | |
} | |
Console.WriteLine(); | |
Console.WriteLine("---------------------------------------"); | |
//10.Format()方法,格式化字符串 | |
Console.WriteLine("{0}+{1}", 1, 2); | |
Console.WriteLine("{0:c}", 1); | |
Console.WriteLine(string.Format("{0}+{1}", 1, 2)); | |
Console.WriteLine(string.Format("{0:c}", 1));//结论string.Format可以省略 | |
Console.WriteLine("---------------------------------------"); | |
//11.IndexOf()方法,取得字符串第一次出现某个给定字符串或者字符的位置 | |
Console.WriteLine(str); | |
Console.WriteLine(str.IndexOf('b')); | |
Console.WriteLine(str.IndexOf('a'));//如果没有找到就返回-1 | |
Console.WriteLine("----------------------------------------"); | |
//12.IndexOfAny()方法 | |
char[] cd = { 'c','b'}; | |
Console.WriteLine(str.IndexOfAny(cd));//该方法是只要数组里面有一个元素在字符串 | |
里面就能返回对应的值,当两个都在的时候就返回最小的那个 | |
Console.WriteLine("-----------------------------------------"); | |
//13.Insert()把一个字符串实例插入到另一个字符串实例的制定索引处 | |
Console.WriteLine(str.Insert(3, "1234564879")); | |
Console.WriteLine("------------------------------------------"); | |
//14.Join()合并字符串数组,创建一个新字符串 | |
char[] vs = { 'q', 'w', 'r', 'e' }; | |
Console.WriteLine(string.Join("",vs)); |
4.StringBuilder类
三种不同的初始化方式
StringBuilder sb = new StringBuilder("123456"); | |
//增加 | |
sb.Append("abc"); | |
Console.WriteLine(sb); | |
//插入,是在索引的前面插入 | |
sb.Insert(3, "g"); | |
Console.WriteLine(sb); | |
//移除,第一个是要移除的位置,第二个变量是要移除多少个 | |
sb.Remove(3,5); | |
Console.WriteLine(sb); | |
//替换 | |
sb.Replace("2", " love "); | |
Console.WriteLine(sb); |
string创建的字符串和stringbuilder创建的字符串区别不同在于,stringbuilder创建的字符串可以进行修改,可以这样去想,string的添加字符串,其实是在静态存储区新开辟了一个区域来存储,而stringbuilder是一个类似字符串数组的形式,可以进行增删改查
5.正则表达式
什么是正则表达式
正则表达式是使用一种数学算法来解决计算机程序中的文本检索,匹配等问题,正则表达式语言是一种专门用于字符串处理的语言
1.检索:通过正则表达式,从字符串中获取想要的部分
2.匹配:判断给定的字符串是否符合正则表达式的过滤逻辑
正则表达式的组成
正则表达式是由普通字符以及特殊字符(元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串
static void Main(string[] args) | |
{ | |
string str1 = "123456f"; | |
string str2 = "abcdef"; | |
string str3 = "abc1def"; | |
Console.WriteLine(Regex.IsMatch(str1, @""));//@字符让特殊字符失效 | |
Console.WriteLine(Regex.IsMatch(str1, @"\d")); | |
Console.WriteLine(Regex.IsMatch(str1, @"\d*")); | |
Console.WriteLine(Regex.IsMatch(str3, @"11*")); | |
Console.WriteLine(Regex.IsMatch(str2, @"\d"));//\d代表查询该字符串里面是否存在一个数字,*代表有0个或多个数字 | |
//^规定整个字符串以什么开头 | |
Console.WriteLine(Regex.IsMatch(str1, @"^1")); | |
Console.WriteLine(Regex.IsMatch(str1, @"^2")); | |
//$匹配结尾 | |
Console.WriteLine(Regex.IsMatch(str1, @"f$")); | |
Console.WriteLine(Regex.IsMatch(str1, @"2$")); | |
string str4 = "456123987"; | |
Console.WriteLine(Regex.IsMatch(str4, @"^\d*$")); | |
string str5 = ""; | |
Console.WriteLine(Regex.IsMatch(str5, @"^\d$")&& Regex.IsMatch(str5, @"^\d*$")); | |
// \w 大小写字母 0-9 _ 补集\W | |
string str6 = "4af_d55"; | |
Console.WriteLine(Regex.IsMatch(str6, @"^\w*$")); | |
//[]这个里面的任意字符出现就符合条件 | |
Console.WriteLine(Regex.IsMatch("abcdf", @"[fghj]")); | |
Console.WriteLine(Regex.IsMatch("abdf", @"[c-j]"));//这个可以不区分大小写 | |
Console.WriteLine(Regex.IsMatch("、", @"[^c-j]"));//这个时候的^就代表了除了c-j的其他元素 | |
//是否是一个合法命名方法的正则表达式 | |
string str7 = "8dthfjJhf"; | |
string str8 = "dhfjahf"; | |
Console.WriteLine(Regex.IsMatch(str7, @"^\w*$")&& Regex.IsMatch(str7, @"^[^\d]")); | |
Console.WriteLine(Regex.IsMatch(str8, @"^\w*$")&& Regex.IsMatch(str8, @"^[^\d]")); | |
Console.WriteLine(Regex.IsMatch(str8, @"^[a-zA-z_]\w*$")); | |
Console.WriteLine(Regex.IsMatch(str8, @"^\w*$")); | |
//字符串的替换 .Replace() | |
string str9 = "abc1d1f814u21s2i"; | |
Console.WriteLine(Regex.Replace(str9, @"[0-9]", "*")); | |
//判断位数,通过{}来限制出现的次数 | |
string re = @"^\d{5,12}$"; | |
Console.WriteLine(Regex.IsMatch("456",re)); | |
Console.WriteLine(Regex.IsMatch("4e56",re)); | |
Console.WriteLine(Regex.IsMatch("45654665645645645654", re)); | |
Console.WriteLine(Regex.IsMatch("2802249004", re)); | |
Console.WriteLine(Regex.IsMatch("28022494", re)); | |
} | |
} |
择一匹配
将两个匹配条件进行逻辑,“或|”运算
Console.WriteLine(Regex.IsMatch("2", @"\d|a")); | |
Console.WriteLine(Regex.IsMatch("a", @"\d|a")); | |
Console.WriteLine(Regex.IsMatch("%", @"\d|a")); | |
//重复单个字符 | |
Console.WriteLine(Regex.IsMatch("aa", @"a{2}")); | |
Console.WriteLine(Regex.IsMatch("aac", @"a{2}")); | |
Console.WriteLine(Regex.IsMatch("abab", @"ab{2}")); | |
Console.WriteLine(Regex.IsMatch("abab", @"(ab){2}"));//()代表进行分组 |