1 static void Main(string[] args) 2 { 3 StrMethod(); 4 } 5 6 public static void StrMethod() 7 { 8 string myString = "brambling"; 9 string myNewStrUP = string.Empty; 10 string myNewStrLow = string.Empty; 11 string myStringL = string.Empty; 12 string myStringR = string.Empty; 13 14 for (int i = 0; i < myString.Length; i++) //如數組一樣,可以通過 myString.Length 獲取字符串的長度 15 { 16 Console.WriteLine("字符:{0}", myString[i]); //string 類型的變量可以看作是 char 類型變量的只讀數組 17 } //所以可以通過下標訪問字符串的每一個字符(即元素) 18 19 20 //但是,這種方式不能為各個字符賦值。為了獲得一個可讀可寫的 char 數組,可以使用 myString.ToCharArray() 方法 21 22 23 // myString.ToCharArray() 字符串轉化為 Char[] 數組 24 char[] myChar = myString.ToCharArray(); 25 for (int i = 0; i < myChar.Length; i++) //如果要修改字符的值,就不能用 foreach 循環 26 { 27 if (i == 0) 28 { 29 myChar[i] = 'B'; //當i=0(即字符串的第一個字母),我們把它改為大寫的 'B' 30 } 31 Console.WriteLine("字符:{0}", myChar[i]); 32 } 33 34 35 // myString.ToUpper() 把字符串轉化為大寫形式 36 myNewStrUP = myString.ToUpper(); 37 Console.WriteLine("字符{0}的大寫為:{1}", myString, myNewStrUP); //輸出結果:字符brambling的大寫為:BRAMBLING 38 39 40 // myString.ToLower() 把字符串轉化為小寫形式 41 myNewStrLow = myNewStrUP.ToLower(); 42 Console.WriteLine("字符{0}的小寫為:{1}", myNewStrUP, myNewStrLow); //輸出結果:字符BRAMBLING的小寫為:brambling 43 44 45 string myStr = " str "; 46 string myNewStr = "---str---"; 47 string myStrL=string.Empty; 48 string myStrR=string.Empty; 49 string myNewStrL = string.Empty; 50 string myNewStrR = string.Empty; 51 Console.WriteLine("字符串‘ str ’長度為:{0}", myStr.Length); //為了比較好觀察,用上面的方式獲取字符串的長度,空格也是有長度的,結果為:7 52 53 54 // myStr.TrimStart() 當沒有參數的時候默認去掉左邊的空格字符,有參數的時候去掉左邊的指定字符 55 myStrL = myStr.TrimStart(); 56 Console.WriteLine("字符串為:{0}", myStrL); 57 Console.WriteLine("字符串長度為:{0}", myStrL.Length); //去掉左邊的空格,結果為:5 58 myNewStrL = myNewStr.TrimStart('-'); 59 Console.WriteLine("字符串為:{0}", myNewStrL); //字符串 "---str---" 去掉左邊的字符 '-' 後的新字符串為:str--- 60 61 62 // myStr.TrimEnd() 當沒有參數的時候默認去掉右邊的空格字符,有參數的時候去掉右邊的指定字符 63 myStrR = myStr.TrimEnd(); 64 Console.WriteLine("字符串為:{0}", myStrR); 65 Console.WriteLine("字符串長度為:{0}", myStrR.Length); //去掉右邊的空格,結果為:5 66 myNewStrR = myNewStr.TrimEnd('-'); 67 Console.WriteLine("字符串為:{0}", myNewStrR); //字符串 "---str---" 去掉右邊的字符 '-' 後的新字符串為:---str 68 69 70 //還有一個方法可以同時去掉左右兩邊的空格或指定字符 71 // myStr.Trim() 當沒有參數的時候默認去掉左右兩邊的空格字符,有參數的時候去掉左右兩邊的指定字符 72 myStr = myStr.Trim(); 73 Console.WriteLine("字符串為:{0}", myStr); 74 Console.WriteLine("字符串長度為:{0}", myStr.Length); //去掉左右兩邊的空格,結果為:3 75 myNewStr = myNewStr.Trim('-'); 76 Console.WriteLine("字符串為:{0}", myNewStr); //字符串 "---str---" 去掉左右兩邊的字符 '-' 後的新字符串為:str 77 78 79 //上面的方法是去掉空格字符或指定字符,下面的方法在字符串前後添加空格或指定字符 80 /* myString.PadLeft(10) 當只有一個參數時,表示在字符串左邊填充空格直至字符串長度為參數指定長度。 81 當存在兩個參數時,第一個的作用同一個參數時一樣,第二個參數表示用指定的字符填充*/ 82 Console.WriteLine("字符串長度為:{0}", myString.Length); //首先輸出原字符串的長度:9 83 myStringL = myString.PadLeft(10); //在字符串前面添加空格,參數 10 表示指定填充後的新字符串長度 84 Console.WriteLine("字符串長度為:{0}", myStringL.Length); //輸出填充後新字符串的長度為:10 85 Console.WriteLine("字符串長度為:{0}", myString); 86 Console.WriteLine("字符串長度為:{0}", myString.PadLeft(10, '-')); //在字符串左邊填充字符 '-' 使其長度達到 10 87 88 89 // myString.PadRight(10) 使用方法同 myString.PadLeft(10) 只是一個作用於左邊,一個作用於右邊 90 Console.WriteLine("字符串長度為:{0}", myString.PadRight(10, '-')); //在字符串右邊填充字符 '-' 使其長度達到 10 91 92 93 // s.Split(',') 把字符串以指定字符分割為一個字符串數組 94 string s = "one,two,three"; 95 string[] arrStr = s.Split(','); //用 ',' 分割字符串,返回一個字符串數組 96 for (int i = 0; i < arrStr.Length; i++) 97 { 98 Console.WriteLine("字符串數組的第{0}個元素為:{1}", i, arrStr[i]); //循環遍歷字符串數組 arrStr 輸出每一個字符串元素 99 } 100 101 102 // s.Replace(",", "-") 匹配第一個參數指定的字符(也可以是字符串),用第二個參數指定的字符(也可以是字符串)替換 103 string sReplace = s.Replace(',', '-'); 104 Console.WriteLine("字符串{0}替換後的新字符串為:{1}", s, sReplace); 105 106 107 // s.Insert(4, "four,") 第一個參數表示開始插入的起始位置,第二個參數表示要插入的字符串 108 string sInsert = s.Insert(4, "four,"); 109 Console.WriteLine("字符串{0}插入後的新字符串為:{1}", s, sInsert); //輸出結果為:one,four,two,three 110 111 112 // s.Remove(3) 當只有一個參數時,表示刪除從指定位置開始到最後所有的字符 113 string sRemove = s.Remove(3); 114 Console.WriteLine("字符串{0}刪除後的新字符串為:{1}", s, sRemove); //輸出結果為:one 115 // s.Remove(4, 4) 當存在兩個參數時,第一個參數表示開始的位置,第二個表示刪除的字符數 116 sRemove = s.Remove(4, 4); 117 Console.WriteLine("字符串{0}刪除後的新字符串為:{1}", s, sRemove); //輸出結果為:one,three 118 119 120 // StringBuilderl類,該類也具有 Insert()、Remove()、Replace()、AppendFormat() 方法,使用方法與 String 類的方法類似 121 StringBuilder sb = new StringBuilder(); 122 sb.Append("one-two-three"); 123 sb.Append("-four"); //在字符串後面追加一個字符串 124 Console.WriteLine(sb.ToString()); // sb.ToString() 把 StringBuilder 類型的字符串轉換為 String 類型的字符串 125 126 127 // String.Concat(arrStr) 為String類的靜態方法,此方法具有其他重載 128 Console.WriteLine(String.Concat(arrStr)); //將字符串數組連接為一個字符串,輸出結果為:onetwothree 129 130 131 // String.Join(",", arrStr) 為String類的靜態方法,第一個參數為指定分割符號,第二個參數為一個字符串數組,此方法具有其他重載 132 Console.WriteLine(String.Join(",", arrStr)); //以指定分割符號將一個字符串數組連接成一個字符串,輸出結果為:one,two,three 133 134 135 // s.IndexOf(",") 在字符串中查找指定字符或字符串第一次出現的位置,返回其索引值,如果未查找到,則返回 -1 136 Console.WriteLine("第一個逗號出現的位置為:" + s.IndexOf(",")); //輸出結果為:3 137 138 139 // s.LastIndexOf(",") 在字符串中查找指定字符或字符串最後一次出現的位置,返回其索引值,如果未查找到,則返回 -1 140 Console.WriteLine("最後一個逗號出現的位置為:" + s.LastIndexOf(",")); //輸出結果為:7 141 142 143 // s.Substring(4) 此方法具有一個重載,當只有一個參數時為指定開始截取的位置,一直截取到字符串的末尾 144 //當為兩個參數時,第一個為指定截取字符串的起始位置,第二個為指定截取字符串的長度 145 Console.WriteLine("未指定截取長度的字符串為:" + s.Substring(4)); //輸出結果為:two,three 146 string st = s.Substring(s.IndexOf(",") + 1, s.LastIndexOf(",") - (s.IndexOf(",") + 1)); 147 Console.WriteLine("指定截取長度的字符串為:" + st); //輸出結果為:two 148 149 150 // String.Format() 為String類的靜態方法,其作用是格式化字符串,此方法具有其他重載 151 Console.WriteLine(String.Format("{0} + {1} = {2}", 1, 2, 1 + 2)); 152 Console.WriteLine(String.Format("{0} / {1} = {2:0.000}", 1, 3, 1.00 / 3.00)); //保留三位小數 153 Console.WriteLine(String.Format("{0:yyyy年MM月dd日}", DateTime.Now)); 154 155 156 Console.ReadKey(); 157 }