C#字符串與正則表達(dá)式的圖文詳解
1.創(chuàng)建字符串
string 變量名 = "字符串內(nèi)容";
???????????string str = "abcdrf"; ? ? ? ? ? ? Console.WriteLine(str);
2.獲取字符串的長度
變量名.Length
相當(dāng)于調(diào)用了一個(gè)計(jì)算長度的方法
string str = "abcdrf"; Console.WriteLine(str); int len = str.Length; Console.WriteLine(len);
3.比較字符串是否一樣可以直接使用 == 進(jìn)行比較
4.字符串進(jìn)行連接是用 + 進(jìn)行連接,注意如果是字符型的數(shù)字,這里的 + 就是進(jìn)行的連接,而不是加法
5.可以將字符串看做成數(shù)組,那么想要獲取對(duì)應(yīng)位置的字符,可以用 字符串名字[字符串的序號(hào)]
6.字符串是不可變的量,對(duì)字符串只能有添加不能修改和刪除
字符串拼接的原理
7.字符串的常用方法
1.CompareTo)方法,比較字符串的內(nèi)容
2.Replace()用另一個(gè)字符或者字符串替換字符串中給定的字符或者字符串
3.Split(在出現(xiàn)給定字符的地方,把字符串拆分稱一個(gè)字符串?dāng)?shù)組
4.SubString0在字符串中檢索給定位置的子字符串
5.ToLower(把字符串轉(zhuǎn)換成小寫形式
6.ToUpper(把字符串轉(zhuǎn)換成大寫形式
7. Trim刪除首尾的空白
8.Concat(方法,合并字符串
9.CopyTo(方法,把字符串中指定的字符復(fù)制到一個(gè)數(shù)組中
10.Format()方法,格式化字符串
11.IndexOf(方法,取得字符串第一次出現(xiàn)某個(gè)給定字符串或者字符的位置
12.IndexOfAny0方法,
13.Insert()把一個(gè)字符串實(shí)例插入到另一個(gè)字符串實(shí)例的制定索引處
14.Join()合并字符串?dāng)?shù)組,創(chuàng)建一個(gè)新字符串
//1.CompareTo()方法,比較字符串的內(nèi)容 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()用另一個(gè)字符或者字符串替換字符串中給定的字符或者字符串 str = str.Replace("a", "b"); Console.WriteLine(str); Console.WriteLine("------------------------------------"); //3.Split()在出現(xiàn)給定字符的地方,把字符串拆分稱一個(gè)字符串?dāng)?shù)組 string[] sArray = str.Split(','); foreach (string i in sArray) Console.WriteLine(i.ToString()); Console.WriteLine("------------------------------------"); //4.SubString()在字符串中檢索給定位置的子字符串,相當(dāng)于保留的是該索引往后的字符串 Console.WriteLine(str.Substring(10)); Console.WriteLine("-------------------------------------"); //5.ToLower()把字符串轉(zhuǎn)換成小寫形式 Console.WriteLine(str.ToLower()); Console.WriteLine("--------------------------------------"); //6.ToUpper(把字符串轉(zhuǎn)換成大寫形式 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()方法,把字符串中指定的字符復(fù)制到一個(gè)數(shù)組中 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));//結(jié)論string.Format可以省略 Console.WriteLine("---------------------------------------"); //11.IndexOf()方法,取得字符串第一次出現(xiàn)某個(gè)給定字符串或者字符的位置 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));//該方法是只要數(shù)組里面有一個(gè)元素在字符串 里面就能返回對(duì)應(yīng)的值,當(dāng)兩個(gè)都在的時(shí)候就返回最小的那個(gè) Console.WriteLine("-----------------------------------------"); //13.Insert()把一個(gè)字符串實(shí)例插入到另一個(gè)字符串實(shí)例的制定索引處 Console.WriteLine(str.Insert(3, "1234564879")); Console.WriteLine("------------------------------------------"); //14.Join()合并字符串?dāng)?shù)組,創(chuàng)建一個(gè)新字符串 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); //移除,第一個(gè)是要移除的位置,第二個(gè)變量是要移除多少個(gè) sb.Remove(3,5); Console.WriteLine(sb); //替換 sb.Replace("2", " love "); Console.WriteLine(sb);
string創(chuàng)建的字符串和stringbuilder創(chuàng)建的字符串區(qū)別不同在于,stringbuilder創(chuàng)建的字符串可以進(jìn)行修改,可以這樣去想,string的添加字符串,其實(shí)是在靜態(tài)存儲(chǔ)區(qū)新開辟了一個(gè)區(qū)域來存儲(chǔ),而stringbuilder是一個(gè)類似字符串?dāng)?shù)組的形式,可以進(jìn)行增刪改查
5.正則表達(dá)式
什么是正則表達(dá)式
正則表達(dá)式是使用一種數(shù)學(xué)算法來解決計(jì)算機(jī)程序中的文本檢索,匹配等問題,正則表達(dá)式語言是一種專門用于字符串處理的語言
1.檢索:通過正則表達(dá)式,從字符串中獲取想要的部分
2.匹配:判斷給定的字符串是否符合正則表達(dá)式的過濾邏輯
正則表達(dá)式的組成
正則表達(dá)式是由普通字符以及特殊字符(元字符)組成的文字模式。該模式描述在查找文字主體時(shí)待匹配的一個(gè)或多個(gè)字符串
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代表查詢?cè)撟址锩媸欠翊嬖谝粋€(gè)數(shù)字,*代表有0個(gè)或多個(gè)數(shù)字 //^規(guī)定整個(gè)字符串以什么開頭 Console.WriteLine(Regex.IsMatch(str1, @"^1")); Console.WriteLine(Regex.IsMatch(str1, @"^2")); //$匹配結(jié)尾 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 _ 補(bǔ)集\W string str6 = "4af_d55"; Console.WriteLine(Regex.IsMatch(str6, @"^\w*$")); //[]這個(gè)里面的任意字符出現(xiàn)就符合條件 Console.WriteLine(Regex.IsMatch("abcdf", @"[fghj]")); Console.WriteLine(Regex.IsMatch("abdf", @"[c-j]"));//這個(gè)可以不區(qū)分大小寫 Console.WriteLine(Regex.IsMatch("、", @"[^c-j]"));//這個(gè)時(shí)候的^就代表了除了c-j的其他元素 //是否是一個(gè)合法命名方法的正則表達(dá)式 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]", "*")); //判斷位數(shù),通過{}來限制出現(xiàn)的次數(shù) 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)); } }
擇一匹配
將兩個(gè)匹配條件進(jìn)行邏輯,“或|”運(yùn)算
Console.WriteLine(Regex.IsMatch("2", @"\d|a")); Console.WriteLine(Regex.IsMatch("a", @"\d|a")); Console.WriteLine(Regex.IsMatch("%", @"\d|a"));
//重復(fù)單個(gè)字符 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}"));//()代表進(jìn)行分組
總結(jié)
到此這篇關(guān)于C#字符串與正則表達(dá)式的文章就介紹到這了,更多相關(guān)C#字符串與正則表達(dá)式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#實(shí)現(xiàn)多線程的同步方法實(shí)例分析
這篇文章主要介紹了C#實(shí)現(xiàn)多線程的同步方法,實(shí)例分析了C#線程同步的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04C#實(shí)現(xiàn)按數(shù)據(jù)庫郵件列表發(fā)送郵件的方法
這篇文章主要介紹了C#實(shí)現(xiàn)按數(shù)據(jù)庫郵件列表發(fā)送郵件的方法,涉及C#讀取數(shù)據(jù)庫及通過自定義函數(shù)發(fā)送郵件的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07C#實(shí)現(xiàn)將一個(gè)矩陣分解為對(duì)稱矩陣與反稱矩陣之和的方法
這篇文章主要介紹了C#實(shí)現(xiàn)將一個(gè)矩陣分解為對(duì)稱矩陣與反稱矩陣之和的方法,較為詳細(xì)的分析了矩陣分解運(yùn)算的原理與C#實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-08-08C#實(shí)現(xiàn)圖片上傳(PC端和APP)保存及 跨域上傳說明
這篇文章主要介紹了C#實(shí)現(xiàn)圖片上傳(PC端和APP)保存及 跨域上傳說明的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-12-12詳解Unity 實(shí)現(xiàn)語音識(shí)別功能
語言識(shí)別功能已經(jīng)在我們身邊普遍流行起來,在unity開發(fā)中語音識(shí)別也非常火熱,今天就介紹下Unity自帶的語音識(shí)別功能的實(shí)現(xiàn),感興趣的朋友跟隨小編一起看看吧2021-05-05Unity ScrollView實(shí)現(xiàn)自動(dòng)吸附效果
這篇文章主要為大家詳細(xì)介紹了Unity ScrollView實(shí)現(xiàn)自動(dòng)吸附效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07