字元串基礎 C# 中單個字元用單引号包含就是 char 類型,( 'a' ),單引号中放且隻能放一個字元。單個字元也可以表示為字元串,還可以有長度為 0 的字元串使用 s.Length 屬性來獲得字元串中的字元個數
string 可以看做是 char 的隻讀數組。 char c = s[1]; 。例子:周遊輸出 string 中的每個元素。
C# 中字元串有一個重要的特性: 不可變性 ,字元串一旦聲明就 不再可以改變。是以隻能通過索引來讀取指定位置的 char ,不能 對指定位置的 char 進行修改。
如果要對 char 進行修改,那麼就必須建立一個新的字元串,用 s. ToCharArray () 方法得到字元串的 char 數組,對數組進行修改後 ,調用 new string(char[]) 這個構造函數(暫時不用細研究)來建立char 數組的字元串。一旦字元串被建立,那麼char 數組的修改 也不會造成字元串的變化。例子:将字元串中的 A 替換為 a 。
誰說字元串不可變? string s = "abc";s="123" , s 這不是變了嗎
要區分變量名和變量指向的值的差別。程式中可以有很多字元串,然後由字元串變量指向他們,變量可以指向其他的字元串,但是字元串本身沒有變化。字元串不可變性指的是記憶體中的字元串不可變,而不是變量不變。
string s10 = s1;//s10 指向 s1 指向的字元串,而不是 s10 指向 s1 ,哪怕 s1以後指向了其他記憶體,那麼 s10 還是指向 "hello"
字元串的常用函數 ToLower() :得到字元串的小寫形式。
注意字元串是不可變的,是以這些函數都不會直接改變字
符串的内容,而是把修改後的字元串的值通過函數傳回值
的形式傳回。 s.ToLower() 與 s=s.ToLower()
ToUpper() :得到字元串的大寫形式; Trim() 去掉字元串兩
端的空白。
s1.Equals(s2, StringComparison.OrdinalIgnoreCase) ,兩
個字元串進行比區分大小寫的比較。
字元串的分割 string[] Split(params char[] separator) :将字元串按照指定的分割符分
割為字元串數組;
string[] Split(char[] separator, StringSplitOptions options) 将字元串按照
指定的 char 分割符分割為字元串數組( options 取RemoveEmptyEntries 的時候移除結果中的空白字元串);
string[] Split(string[] separator, StringSplitOptions options) 将字元串按
照指定的 string 分割符分割為字元串數組。
例子 1 :從日期字元串( "2008-08-08" )中分析出年、月、日; 2008 年
08 月 08 日。
例子 2 :從一個記錄了學生成績的文本文檔,每個學生成績是一行,每
行是用 | 分割的資料,用 | 分割的域分别是姓名、年齡、成績,寫程式取
出成績最高學生的姓名和成績。參考:使用 string[] lines =System.IO.File.ReadAllLines(@"c:\root.ini" , Encoding.Default ); 從文本檔案讀取資料,傳回值為 string 數組,每個元素是一行。
字元串替換: string Replace(string oldValue, string newValue )
将字元串中的出現 oldValue 的地方替換為 newValue 。 例子:名
字替換。
取子字元串: string Substring(int startIndex) ,取從位置
startIndex 開始一直到最後的子字元串;
string Substring(int startIndex, int length) ,取從位置 startIndex
開始長度為 length 的子字元串,如果子字元串的長度不足 length
則 報錯。
bool Contains(string value) 判斷字元串中是否含有子串 value
bool StartsWith(string value) 判斷字元串是否以子串 value 開始;
bool EndsWith (string value) 判斷字元串是否以子串 value 結束;
int IndexOf(string value) : 取子串 value 第一次出現的位置。