CodeGym /課程 /C# SELF /字串與文字:string 類型,字串操作

字串與文字:string 類型,字串操作

C# SELF
等級 2 , 課堂 2
開放

1. 更深入了解 string 類型

string 類型是 C# 裡最常用的類型之一。搞不好根本就是最常用的啦。這個類型超讚,因為你可以在這種變數裡存文字。而且,跟 intdouble 不一樣,string 物件有一堆不同的函式,靠這些函式你可以做很多有趣的事。

還有,C# 裡所有物件(真的全部)都可以轉成 string 類型。或者說,更精確一點,C# 裡所有物件都會回傳自己的文字(字串)表示。我們以後還會一直回來講這個類型(真的超實用又有趣),但今天先來認識它的基礎。

建立 string 類型的變數

string 類型就是拿來存字串(文字)的。要在程式碼裡建立一個可以存文字的變數,你要用這個指令:

string 名稱;
建立 string 類型的變數

這裡的 名稱 就是變數的名字啦。

範例:

指令 說明
string name; 建立一個字串變數 name
string message; 建立一個字串變數 message
string text; 建立一個字串變數 text

intdouble 一樣,你也可以用簡短寫法一次建立多個 string 變數:

string 名稱1, 名稱2, 名稱3;
建立 string 類型的變數

2. 給 string 變數賦值

要把值放進 string 變數裡,你要用這個指令:

名稱 = "值";
string 變數賦值

這裡有個跟之前學過的類型不一樣的地方。所有 string 類型的值都是一串文字,要用雙引號包起來。

範例:

指令 備註
string name = "安雅"; 變數 name 裡面是 安雅
string city = "New York"; 變數 city 裡面是 New York
string message = "Hello!"; 變數 message 裡面是 Hello!

3. 初始化 string 變數

intdouble 一樣,string 變數也可以在建立時就直接初始化。其實 C# 裡所有類型都可以這樣做啦,所以我們以後就不再特別講這個了。

string 名稱1 = "字串1", 名稱2 = "字串2";
建立 string 類型的變數

建立和初始化變數的範例

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"

每個這種方法都會回傳一個新的字串,舊的字串 不會變

2
任務
C# SELF, 等級 2, 課堂 2
上鎖
建立與初始化字串變數
建立與初始化字串變數
2
任務
C# SELF, 等級 2, 課堂 2
上鎖
字串操作與插值
字串操作與插值
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION