六、C#字元與字元串 6.1.字元與轉義字元 1)定義 char類結構表示unicode字元。可以用來定義單個中文字元 2)方法 char c1 = 'a'; char c2 = '0'; char c3 = 'A'; Console.WriteLine(char.IsLetter(c1)); // ...
六、C#字元與字元串
6.1.字元與轉義字元
1)定義
char類結構表示unicode字元。可以用來定義單個中文字元
2)方法
char c1 = 'a'; char c2 = '0'; char c3 = 'A'; Console.WriteLine(char.IsLetter(c1)); //判斷是否是字母 Console.WriteLine(char.IsDigit(c2)); //判斷是否是數字 Console.WriteLine(char.IsLetterOrDigit(c1)); //判斷是否是字母或數字 Console.WriteLine(char.IsLower(c1)); //判斷是否小寫 Console.WriteLine(char.IsUpper(c3)); //判斷是否大寫 Console.WriteLine(char.IsPunctuation(c1)); //判斷是否是標點 Console.WriteLine(char.IsSeparator(c1)); //判斷是否是分隔符 Console.WriteLine(char.IsWhiteSpace(c1)); //判斷是否是空格 Console.WriteLine(char.ToLower(c3)); //轉換成小寫 Console.WriteLine(char.ToUpper(c1)); //轉換成大寫 Console.ReadLine();
3)轉義字元
6.2.字元串
字元串是System.String類的一個引用類型,可以將String類型變數看成是char類型的只讀數組
1)字元集和字元編碼
ASCII碼、GB2312、Unicode、UTF-8等
ASCII '0'=48 '65'=A 'a'=97
6.3.字元串操作
方法分為靜態方法和非靜態方法
靜態:string.方法 非靜態:str.方法
//6.3.字元串大小寫轉換 string name = "jAcK"; Console.WriteLine(name.ToLower());//轉換成小寫 Console.WriteLine(name.ToUpper());//轉換成大寫 //6.4.字元串比較 string str1 = "Hello"; string str2 = "HEllo"; Console.WriteLine(str1 == str2); Console.WriteLine(string.Equals(str1, str2)); Console.WriteLine(string.Compare(str1, str2)); //>0:str1>str2 =0:str1=str2 <0:str1<str2 Console.WriteLine(string.Compare(str1, str2, true));//忽略大小寫 Console.WriteLine(str1.CompareTo(str2)); //>0:str1>str2 =0:str1=str2 <0:str1<str2 //小寫不應該大於大寫嗎,有點奇怪!! //6.5.字元串格式化 string str3 = string.Format("hello {0}," + "I am {1}.", "world", "Hecarim"); Console.WriteLine(str3); str3 = string.Format("{0:D3}", 1); //填充成3位 -> 001 Console.WriteLine(str3); str3 = string.Format("{0:F3}", 1.2345);//保留三位小數 Console.WriteLine(str3); //6.6.字元串截取 string str4 = "Hecarim"; //字元串索引從0開始 Console.WriteLine(str4.Substring(2)); //第2個開始截取 -> carim Console.WriteLine(str4.Substring(2, 2)); //第2個開始截取,長度為2 -> ca //6.7.字元串分割 string str5 = "I-am-Hecarim=18"; string[] splitStr = str5.Split('-'); //以'-'分割字元串 foreach (string item in splitStr) Console.Write(item + "\t"); //splitStr = str5.Split(new char[] { '-', '=' }); //以'-','='分割字元串 splitStr = str5.Split("-=".ToCharArray()); //以'-','='分割字元串 foreach (string item in splitStr) Console.Write(item + "\t"); Console.WriteLine(); //6.8.字元串合併 string str6 = "hello"; string str7 = "world"; Console.WriteLine(str6 + str7); Console.WriteLine(string.Concat(str6, str7)); //合併str6 str7 Console.WriteLine(string.Concat(splitStr)); //合併splitStr中的所有string Console.WriteLine(string.Join("-", splitStr)); //以'-'合併splitStr中的所有string //6.9.字元串插入填充 string str8 = "Hecarm"; Console.WriteLine(str8.Insert(5, "i")); //"i"插入到索引為5的位置 Console.WriteLine(str8.PadLeft(10)); //左填充成長度為10,預設是空格 Console.WriteLine(str8.PadRight(10, '*')); //右填充成長度為10,用'*'填充,預設是空格 //6.10.字元串刪除 string str9 = "HecarimzzZ"; Console.WriteLine(str9.Remove(7)); //移除索引為7之後的字元 Console.WriteLine(str9.Remove(7, 2)); //移除索引為7之後的2個字元 //6.11.字元串修剪 string str10 = " Hecarim "; Console.WriteLine(str10.Trim() + "|"); //修剪前後空格 Console.WriteLine(str10.TrimStart() + "|"); //修剪前空格 Console.WriteLine(str10.TrimEnd() + "|"); //修剪後空格 string str11 = "&#&#Hecarim*#$*$"; Console.WriteLine(str11.Trim('$', '&')); //修剪前後的'$','&' Console.WriteLine(str11.Trim("&#*$".ToCharArray())); //修剪前後的'$','&','*','#' //6.12.字元串複製 string str12 = "vincent"; Console.WriteLine(string.Copy(str12)); char[] str13 = new char[20]; str12.CopyTo(3, str13, 0, 4); //指定位置複製 Console.WriteLine(str13); //6.13.字元串替換 string str14 = "hello"; Console.WriteLine(str14.Replace('h', 'H')); //將'h'替換成'H' //6.14.字元串查找 string str15 = "hello world"; Console.WriteLine(str15.IndexOf("wor")); //返回"wor"第一次出現的索引 Console.WriteLine(str15.LastIndexOf("wor")); //返回"wor"最後一次出現的索引
Console.ReadKey();
6.15.類型轉換
1)轉換形式
隱式轉換:是系統自發的,不需要我們進行干預,也不需要我們進行額外的編碼
顯示轉換:強制轉換
//類型轉換 int num1 = 65; string str16 = "97"; Console.WriteLine(checked((char)num1)); //強制轉換,checked()檢查變數是否溢出 Console.WriteLine(Convert.ToString(num1)); Console.WriteLine(num1.ToString()); Console.WriteLine(int.Parse(str16));
2)區別
(int)強制轉換
不進行四捨五入
Convert.ToInt32()
可以將空值NULL轉換成0
0-4:直接捨棄
5:返回一個臨近的偶數
6-9:進位
int.Parse()
不能將空值NULL轉換成0
只能轉String類
6.17.StringBuilder類
1)作用
在使用System.String類中的方法時,都要在記憶體中創建一個新的字元串對象,這就需要為該新對象分配新的空間。
在需要重覆使用的情況下,創建新的String對象相關的系統開銷就可能非常高
2)使用
引入System.Text的命名空間
通過new關鍵字初始化,eg:StringBuilder stBuilder = new StringBuilder("Hecarim");
使用方法與String類相同
3)方法
Append、AppendLine、AppendFormat ...