標籤:
補充:
1:在C語言裡 char佔1個位元組 而在C#,Java裡char佔兩個位元組 資料庫裡char 中漢佔兩個位元組 字母數字佔一個字
2:string是c#中的類,String是.net Framework的類 string是關鍵字,也就是說string不能作為類、結構、枚舉、欄位、變數、方法、屬性的名稱,而String可以
一: string是
參考型別
但是當一個string類型的參數賦值給另一個參數時,只給了值,而不是地址,因為它保留在堆上,而不是堆棧上
namespace Stringop{ class Program { static void Main(string[] args) { string str1 = "lipeng"; string str2 = str1; Console.WriteLine("str1=" + str1); Console.WriteLine("str2=" + str2); str1 = "newlipeng"; Console.WriteLine("str1=" + str1); Console.WriteLine("str2=" + str2); } }}
二:常用函數1.all
//all函數 //確定序列中的所有元素是否滿足條件。 bool isSure = str1.All(p => p > ‘b‘); Console.WriteLine(isSure);
2.CompareTo
//CompareTo //返回一個值,該值指示指定的 System.String 對象是否出現在此字串中。 // 一個 32 位有符號整數,該整數指示此執行個體在排序次序中是位於 value 參數之前、之後還是與其出現在同一位置。值條件小於零此執行個體位於 str2 // 之前。零此執行個體在排序次序中的位置與 str2 相同。大於零此執行個體位於 str2 之後。- 或 -str2 為 null。 str2 = "newlipenaa"; int lp = str1.CompareTo(str2); Console.WriteLine(lp);
3.Contains
//Contains //返回一個值,該值指示指定的 System.String 對象是否出現在此字串中。 bool isContain = str1.Contains("a"); Console.WriteLine(isContain);
4.Count
//Count //返回一個數字,表示在指定的序列中滿足條件的元素數量。 int count = str1.Count(p => p == ‘e‘ || p == ‘l‘); Console.WriteLine(count);
5.IndexOf
//IndexOf //報告指定 Unicode 字元在此字串中的第一個匹配項的索引。 int index = str1.IndexOf(‘a‘); Console.WriteLine(index); string strs = str1.Substring(1, 3); Console.WriteLine(strs);
6.Split
//Split //返回的字串數組包含此執行個體中的子字串(由指定 Unicode 字元數組的元素分隔)。 string[] lsStr = str1.Split(new char[] { ‘,‘, ‘e‘ }); foreach (string a in lsStr) { Console.WriteLine(a); }
7.Trim 和TrimEnd
//Trim //從當前 System.String 對象移除所有前置空白字元和尾部空白字元。 //TrimEnd //從當前 System.String 對象移除數組中指定的一組字元的所有尾部匹配項。 string strspace = " aaa s"; Console.WriteLine(strspace); Console.WriteLine(strspace.Trim()); Console.WriteLine(strspace.TrimEnd(‘s‘));
8.PadLeft
//PadLeft //返回一個新字串,該字串通過在此執行個體中的字元左側填充指定的 Unicode 字元來達到指定的總長度,從而使這些字元靠右對齊。 string padstr = str1.PadLeft(20, ‘a‘); Console.WriteLine(padstr);
9.Replace
//Replace //返回一個新字串,其中此執行個體中出現的所有指定 Unicode 字元都替換為另一個指定的 Unicode 字元。 string replacestr = str1.Replace(‘a‘, ‘h‘); Console.WriteLine(replacestr);
10.Equals
//Equals //確定此執行個體是否與另一個指定的 System.String 對象具有相同的值。 bool isequal = str1.Equals(replacestr); Console.WriteLine(isequal);
11.ToUpper
//ToUpper //返回此字串轉換為大寫形式的副本。 string upstr1 = str1.ToUpper(); Console.WriteLine(upstr1);
三:可變字串StringBuilder
StringBuilder建立的對象可操作性更強:
經常改變內容的字串最好不要用 String ,因為每次產生對象都會對系統效能產生影響,特別當記憶體中無引用對象多了以後, 那速度是一定會相當慢的。而如果是使用 StringBuffer 類則結果就不一樣了,每次結果都會對 StringBuilder對象本身進行操作,而不是產生新的對象,再改變對象引用。所以在一般情況下推薦使用 StringBuilder,特別是字串對象經常改變的情況下。
簡單例子:
StringBuilder sber = new StringBuilder(); //最加字串 ouput: lipeng,aaa,bbb sber.Append("lipeng,aaa,bbb"); Console.WriteLine(sber); //移除li ouput: peng,aaa,bbb sber.Remove(0, 2); Console.WriteLine(sber); //擷取長度 ouput:12 int sberlength = sber.Length; Console.WriteLine(sberlength); //轉化為string類型時就具有了string類型的方法 string lps = sber.ToString().Trim();
四:其他知識點
string類型的count和length結果是一樣的 是string中char類型的個數 而string數組只能用一個計數器來記錄個數
C#string常用函數總結