1. 更深入了解 string 類型
string 類型是 C# 裡最常用的類型之一。搞不好根本就是最常用的啦。這個類型超讚,因為你可以在這種變數裡存文字。而且,跟 int 跟 double 不一樣,string 物件有一堆不同的函式,靠這些函式你可以做很多有趣的事。
還有,C# 裡所有物件(真的全部)都可以轉成 string 類型。或者說,更精確一點,C# 裡所有物件都會回傳自己的文字(字串)表示。我們以後還會一直回來講這個類型(真的超實用又有趣),但今天先來認識它的基礎。
建立 string 類型的變數
string 類型就是拿來存字串(文字)的。要在程式碼裡建立一個可以存文字的變數,你要用這個指令:
string 名稱;
這裡的 名稱 就是變數的名字啦。
範例:
| 指令 | 說明 |
|---|---|
| string name; | 建立一個字串變數 name |
| string message; | 建立一個字串變數 message |
| string text; | 建立一個字串變數 text |
跟 int 跟 double 一樣,你也可以用簡短寫法一次建立多個 string 變數:
string 名稱1, 名稱2, 名稱3;
2. 給 string 變數賦值
要把值放進 string 變數裡,你要用這個指令:
名稱 = "值";
這裡有個跟之前學過的類型不一樣的地方。所有 string 類型的值都是一串文字,要用雙引號包起來。
範例:
| 指令 | 備註 |
|---|---|
| string name = "安雅"; | 變數 name 裡面是 安雅 |
| string city = "New York"; | 變數 city 裡面是 New York |
| string message = "Hello!"; | 變數 message 裡面是 Hello! |
3. 初始化 string 變數
跟 int 跟 double 一樣,string 變數也可以在建立時就直接初始化。其實 C# 裡所有類型都可以這樣做啦,所以我們以後就不再特別講這個了。
string 名稱1 = "字串1", 名稱2 = "字串2";
建立和初始化變數的範例
string name = "安雅", city = "New York", message = "Hello!";
只有有值的變數才能用
C# 編譯器會抱怨,如果你宣告了變數但沒給它值就想用它。
這樣的程式碼不會動:
string name;
Console.WriteLine(name); // 變數 name 沒有初始化,程式不會編譯過。
int a;
a++; // 變數 a 沒有初始化,程式不會編譯過。
double x;
double y = x; // 變數 x 沒有初始化,程式不會編譯過。
4. 串接字串(Concatenation)
有個超簡單又有趣的事可以拿字串來玩,就是把它們串起來。這個動作叫做 串接。你也可以記成「Con-Ka-Te-Na-Tion」。不過大家通常都叫它「字串串接」或直接說「字串加法」。
要把兩個字串串起來,就用 +。超簡單:
"值1" + "值2"
範例:
| 指令 | 備註 |
|---|---|
| string name = "安雅" + "安雅"; | name 裡面是 安雅安雅 |
| string city = "New York" + "安雅"; | city 裡面是 New York安雅 |
| string message = "Hello! " + "安雅"; | message 裡面是 Hello! 安雅 |
當然啦,你也可以一次串很多字串,或是把字串跟變數一起串。
範例:
string name = "安雅"; // name 裡面是 安雅
string city = "New York"; // city 裡面是 New York
string message = "Hello!" + city + name + city; // message 裡面是 Hello!New York安雅New York
5. 空字串
上一個範例你會發現 message 裡的文字很難讀,因為沒有空格。要加一個或多個空格,只要直接在程式碼裡寫空格,用雙引號包起來就好。超簡單:
" "
對了,如果雙引號裡什麼都不寫(直接兩個雙引號),那就是所謂的「空字串」:
""
一方面它好像存在,但另一方面,印出來什麼都沒有。跟其他字串串接也不會有變化。有點像字串界的 0。
6. 跳脫字串裡的特殊字元
你應該知道字串要用雙引號包起來。但如果你想在字串裡放雙引號怎麼辦?如果直接寫雙引號,編譯器不會以為那是字串結束嗎?
沒錯,會這樣。所以字串裡的雙引號要寫成 \"。程式碼會像這樣:
string quote = "他說:\"你好!\"";
Console.WriteLine(quote); // 他說:"你好!"
其實還有點小技巧。\ 這個符號在字串裡是特殊(控制)字元。靠它你可以加一些「看不到的字元」像換行、tab 什麼的。要真的寫出 \,就要寫兩次。
這裡有 4 個最常用的組合:
| 寫法 | 意思 |
|---|---|
| \n | 換行(newline) |
| \t | Tab(縮排) |
| \\ | 真的就是 \ |
| \" | 字串裡的雙引號 |
範例:
string multiline = "字串 1\n字串 2";
Console.WriteLine(multiline);
印出來會是:
// 字串 1
// 字串 2
7. 字串插值 ($-字串)
C# 超現代的啦,它讓你可以很優雅地把變數值放進字串裡,只要在雙引號前加 $,然後在字串裡用大括號 {}。這你應該已經知道了。
但你可能還不知道,大括號裡可以放整個運算式,甚至呼叫函式!範例:
string name = "歐莉亞";
int birthYear = 1999;
string info = $"我叫 {name},我 {2025-birthYear} 歲。";
Console.WriteLine(info); // 我叫 歐莉亞,我 26 歲。
這種寫法超好讀,也比較不會出錯(也不用一堆括號)。插值的細節我們之後會再講一堂課,但簡單用法現在就可以直接用了。
8. string 的內建方法
string 類型有自己的方法(也叫函式)。超多的,對工程師來說超方便。今天先認識幾個最簡單的。範例:
| 方法 | 說明 | 範例結果 |
|---|---|---|
| str.Length | 字串長度 | "abc".Length → 3 |
| str.ToUpper() | 轉成大寫 | "abc".ToUpper() → "ABC" |
| str.ToLower() | 轉成小寫 | "ABC".ToLower() → "abc" |
| str.Trim() | 去掉前後空白 | " x y ".Trim() → "x y" |
字串方法的範例
這些方法都這樣用:變數.方法(...) 。
算字串長度:
string name = "安德烈";
int length = name.Length;
Console.WriteLine(length); // 6,因為有 6 個字
轉成大寫或小寫:
string original = "哈囉";
Console.WriteLine(original.ToUpper()); // 哈囉(如果是英文會變大寫)
Console.WriteLine(original.ToLower()); // 哈囉(如果是英文會變小寫)
去掉前後空白(輸入時超有用):
string messy = " hello ";
Console.WriteLine(messy.Trim()); // "hello"
每個這種方法都會回傳一個新的字串,舊的字串 不會變。
GO TO FULL VERSION