C#快速入門教程(11)—— 字元和字串型別

曹化宇發表於2018-09-21

字元型別(char)用於單個字元,而字串型別(string)用於處理一個字元序列。在.NET Framework環境中,字元和字串都使用Unicode標準,這樣就可以用效地處理世界各地的語言、文字和符號。

在C#中,字元型別使用char關鍵字定義,對應於System.Char結構型別,字面量應包含在一對英文半形的單引號中,如'A'、'1'、'*'等,唯一需要應用的字元是單引號本身,如果需要定義一個單引號字元,應使用\字元進行轉義,如'\''。

使用字元時,還可以在字元和整數之間進行轉換,而整數值就是字元的編碼;下面的程式碼演示了字元的定義和轉換操作。

static void Main(string[] args)
{
    char ch = 'A';
    uint code = ch;
    //
    Console.WriteLine("字元:{0}  程式碼:{1}", ch, code);
}

程式碼執行結果如下圖所示。

enter image description here

需要將數值轉換為字元時,應進行強制轉換,如下面的程式碼。

static void Main(string[] args)
{
    uint code = 36;
    char ch = (char)code;
    //
    Console.WriteLine("字元:{0}  程式碼:{1}", ch, code);
}

程式碼執行結果如下圖所示。

enter image description here

字串型別,在C#中使用string關鍵字定義,對應System.String類型別;請注意,字串是引用型別,但是,String型別定義的是不可變字串,也就是說,在記憶體中定義的字串物件是不可修改的,一但有任何的變化,都會重新分配記憶體(即重新分配物件的資料區域)。所以,對於字串的修改等操作效率並不高,此時,可以使用StringBuilder類,在後續的課程中會討論相關應用。

接下來,我們看一下字串的基本應用。

字串內容使用一對英文半形雙引號定義,如"abc",可以包含任何Unicode編碼的字元內容,不過,對於一些特殊符號還需要進行轉義處理,如:

enter image description here

大家可以思考下面程式碼的輸出結果。

static void Main(string[] args)
{
    string s = "\'Hello C#\'";
    //
    Console.WriteLine(s);
}

程式碼執行結果如下圖所示。

enter image description here

實際應用中,如果字串包含了大量的特殊字元,那麼,書寫起來可能比較麻煩,而且容易出錯,此時,可以使用逐字字串,其格式是在雙引號定義的字串前新增一個@符號,如下面的程式碼。

static void Main(string[] args)
{
    string s = @"c:\log.txt";
    //
    Console.WriteLine(s);
}

s字串中定義了一個檔案的路徑,使用逐字字串時,可以簡化路徑分隔符的書寫,很多時候,這是程式碼書寫時很容易出錯的地方。顯示結果如下圖所示。

enter image description here

在逐字字串中,唯一需要轉義的字元是雙引號,如下面的程式碼。

static void Main(string[] args)
{
    string s = @"""Hello""";
    //
    Console.WriteLine(s);
}

程式碼顯示結果如下圖所示。

enter image description here

本課,我們瞭解了字元和字串的基本應用,在需要大量的字串操作時,可以參考StringBuilder類等資源,後續會有相關內容。

CHY軟體小屋原創作品!

相關文章