程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#string類型總結,

C#string類型總結,

編輯:C#入門知識

C#string類型總結,


個人筆記分享,知識點以及小練習

字符串的特性:不可變性,每對字符串做拼接或者重新賦值之類的操作,都會在內存中產生一個新的實例。

 所以說,在.Net平台下,如果你對一個字符串進行大量的拼接賦值等操作,會產生大量的垃圾。    ---->我們可以將字符串看做是char類型的只讀數組。   --->當我們以索引的方式去訪問某一個字符串的時候,獲得是char類型 空和null有什麼區別,空在內存上開空間了,null沒有 字符串的常用函數  1、ToCharArray():將一個字符串轉換成一個char類型的數組。  2、new string(char[] chs):根據一個char類型的數組返回一個字符串。  3、ToUpper():返回字符串的大寫形式.  4、ToLower():返回字符串的小寫形式.  5、Equals(,stringcomprasion......):比較兩個字符串是否相等,可以忽略大小寫。  (lessonOne.Equals(lessonTwo,StringComparison.OrdinalIgnoreCase))  Equal和Tostring都是object下的虛方法,都可以重寫  6、Split():分割字符串,返回字符串類型的數組。 string[] nerstr=str.Split(new char[] { ' ', ',', '-' }, StringSplitOptions.RemoveEmptyEntries);  7、Contains():判斷字符串中是否包含指定的字符串  8、Replace():將老字符串替換成新字符串  9、StartsWith():判斷字符串是否以指定的字符串開始  10、EndsWith():判斷字符串是否以指定的字符串結束  11、Trim():去掉字符串兩端的字符。但是,不能去掉字符串中間的字符。  12、TrimStart():  13、TrimEnd():  14、Substring():截取指定的字符串,可以選擇截取的長度。  15、IndexOf():取某一個字符在字符串中第一次出現的位置,如果沒有,則返回-1。  16、LastIndexof():去某一個字符在字符串中最後一次出現的位置,如果沒有,則返回-1。  17、靜態函數   --->string.IsNullOrEmpyt()判斷指定的字符串是否為空或者為null   --->string.Join():將指定的分隔符插入數組每個元素的後面,返回一個字符串,默認最後一個元素後面沒有。 18:等號和Equals的區別 對於string類型而言,不管是等號還是Equals比較的都是值本身。             //Equals默認比較的是地址,但是我們在自己定義的類中如果用到Equals,都會將Equals進行重寫,使之按照我們自己的需求進行比較 拼接字符串 //string str = string.Empty;             //StringBuilder sb = new StringBuilder();             ////00:00:00.1022297             //Stopwatch sp = new Stopwatch();

提供一組方法和屬性,可用於准確地測量運行時間。

            //sp.Start();             //for (int i = 0; i < 100000; i++)             //{             //    //str += i;             //    sb.Append(i); //追加             //}             //sp.Stop();             //Console.WriteLine(sp.Elapsed);

獲取當前實例測量得出的總運行時間。Elapsed

            //Console.WriteLine(sb.ToString());              StringBuilder sb = new StringBuilder();   舉例: #region new string() ToCharArray()             //string str = "abcdef";             ////str[0] = 'b';               //////字符串--->char數組(可讀可寫)             ////char[] chs = str.ToCharArray();             ////chs[0] = 'b';             //////將改變後的char數組再次轉換成字符串             ////str = new string(chs);               //Console.WriteLine(str[0]);             #endregion               #region Length屬性             //Console.WriteLine("請輸入你人生中最深刻老師的名字");             //string name = Console.ReadLine();             //Console.WriteLine("這個老師的名字有{0}個字",name.Length);             #endregion               #region ToUpper() ToLower() Equals()             //Console.WriteLine("請輸入你喜歡的課程");             //string lessonOne = Console.ReadLine();             ////轉換成大寫             ////lessonOne = lessonOne.ToUpper();             ////轉換成小寫             ////lessonOne = lessonOne.ToLower();             //Console.WriteLine("請輸入你喜歡的課程");             //string lessonTwo = Console.ReadLine();             ////lessonTwo = lessonTwo.ToUpper();             ////lessonTwo = lessonTwo.ToLower();             //if (lesssonsonOne.Equals(leTwo,StringComparison.OrdinalIgnoreCase))             //{             //    Console.WriteLine("你們喜歡的課程相同");             //}             //else             //{             //    Console.WriteLine("你們喜歡的課程不相同");             //}             #endregion               #region Split() 字符串的分割             ////string str = "abc   ,,,d, ,--,ef,,--  0987";             //////將一個字符串中沒用的東西去掉             ////string[] strNew = str.Split(new char[] { ' ', ',', '-' }, StringSplitOptions.RemoveEmptyEntries);                 ////練習:從日期字符串("2008-08-08")中分析出年、月、日;2008年08月08日。             ////讓用戶輸入一個日期格式如:2008-08-08,你輸出你輸入的日期為2008年1月2日               //string date = "2008-08-08";// "2008年08月08日";             //string[] newDate = date.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries);               //date = newDate[0] + "年" + newDate[1] + "月" + newDate[2] + "日";             //Console.WriteLine(date);             //Console.ReadKey();             #endregion               #region Contains()判斷是否包含  Replace()替換             //Console.WriteLine("請輸入你的評論");             //string input = Console.ReadLine();             ////1、判斷評論中是否包含敏感詞             //if (input.Contains("老趙"))             //{             //    //2、進行替換             //    input = input.Replace("老趙", "***");             //}             //Console.WriteLine(input);             //Console.ReadKey();             #endregion             #region StartsWith() EndsWith()             //string str = "舉頭望明月,我叫郭德綱";             ////if (str.StartsWith("頭"))             ////{             ////    Console.WriteLine("是的");             ////}             ////else             ////{             ////    Console.WriteLine("不是");             ////}             //Console.WriteLine(str.EndsWith("舉頭望明月,我叫郭德綱") ? "是的" : "不是");             #endregion             #region Trim() TrimEnd() TrimStart()             /*string str = "----  ---1   2---3-  --  ----";             ////str = str.Trim(); 去掉字符串兩邊的空格             ////str = str.TrimStart(); 去掉字符串前邊的空格             ////str = str.TrimEnd();去掉後面的空格             str = str.Trim('-',' ');             //string[] strNew = str.Split(new char[] { '-', ' ' }, StringSplitOptions.RemoveEmptyEntries);               Console.Write(str);                Console.ReadKey(); */             #endregion               #region Substring() 截取字符串             string str = "今天我要是上課睡覺了,我以後就單身一輩子";             str = str.Substring(12,2);             Console.WriteLine(str);             Console.ReadKey();             #endregion                 #region LastIndexof()找到某一個字符在字符串中最後一次出現的位置             //string path = @"c:\a\b\c\e\亞廷\d\f\蒼老師蒼老師.avi";               ////找到某一個字符在字符串中最後一次出現的位置             ////獲得 \\在路徑中最後一次出現的位置             //int index = path.LastIndexOf('\\');               //string fileName = path.Substring(index + 1);               //Console.WriteLine(fileName);             //Console.ReadKey();             #endregion               #region IndexOf()               /* string str = "舉頭望明頭頭月,我叫頭郭頭德綱";                  int index = str.IndexOf('a', 3);                  Console.WriteLine(index);                Console.ReadKey();*/             #endregion             //Console.WriteLine(string.IsNullOrEmpty(null) ? "yes" : "no");             /*  string[] names = { "張三", "李四", "王五", "趙六", "田七" };             //張三|李四|王五|趙六|田七             string str = string.Join("|", names);             Console.WriteLine(str);             Console.ReadKey();*/    //課上練習2:接收用戶輸入的一句英文,將其中的單詞以反序輸出。      “I love you"→“I evol uoy"             //string str = "Chinese food is best food";             ////獲得要翻轉的單詞 按照空格分割             //string[] strNew = str.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);             //for (int i = 0; i < strNew.Length; i++)             //{             //    char[] chs = strNew[i].ToCharArray();             //    for (int j = 0; j < chs.Length / 2; j++)             //    {             //        char temp = chs[j];             //        chs[j] = chs[chs.Length - 1 - j];             //        chs[chs.Length - 1 - j] = temp;             //    }               //    strNew[i] = new string(chs);             //}             ////把空格安插到字符串數組中每個元素的後面             //str = string.Join(" ", strNew);             //Console.WriteLine(str);             //Console.ReadKey();   //課上練習4:把csv文件中的聯系人姓名和電話顯示出來。簡單模擬csv文件,csv文件就是使用,分割數據的文本,輸出:                 //string[] lines = File.ReadAllLines(@"C:\Users\SpringRain\Desktop\電話.txt", Encoding.Default);             //for (int i = 0; i < lines.Length; i++)             //{             //    //將雙引號替換成""             //    lines[i] = lines[i].Replace("\"", "");             //    //將逗號和分號去掉             //    string[] linesNew = lines[i].Split(new char[] { ',', ';' }, StringSplitOptions.RemoveEmptyEntries);             //    Console.WriteLine("姓名:" + linesNew[0] + linesNew[1] + " 電話:" + linesNew[2]);             //}  /* string str = "一日,天氣炎熱。兩香蕉在路上散步,一香蕉抱怨道:“好熱阿,好熱阿。”遂脫衣。另一香蕉遂倒";             int index = str.IndexOf("香蕉");             Console.WriteLine("香蕉第一個出現的位置{0}",index);             int count=1;             while(index!=-1)             {                 count++;                 index = str.IndexOf("香蕉", index + 1);                 if(index==-1)                 {                     break;                 }                 Console.WriteLine("第{0}次出現的香蕉的位置是{1}",count,index);             }             Console.ReadKey();*/     等號和Equals的區別   Person p1 = new Person() { Name = "劉德華", Age = 18 };   Person p2 = new Person() { Name = "劉德華", Age = 18 }; //if (p1.Equals(p2)) //這是不相等的Equals默認比較的是地址,             //{             //    Console.WriteLine("相等");             //}             //else             //{             //    Console.WriteLine("不相等");             //}  class Person     {         public string Name { get; set; }         public int Age { get; set; }    } 如果讓他們比較值那就:::重寫  public override bool Equals(object obj)         {             Person person = obj as Person;             if (this.Name == person.Name && this.Age == person.Age)             {                 return true;             }             else             {                 return false;             }         } StringBuilder sb = new StringBuilder();             //sb.Append("123");             //sb.Append("張三"); Console.Writeline(sb);顯示123張三     Person p1 = new Person() { Name = "劉德華", Age = 18 };   class Person     {         public string Name { get; set; }         public int Age { get; set; }      }  Console.WriteLine(p1.ToString());//這個對象所在的類的命名空間  

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved