歡迎來到字串的世界!

在電腦科學中,我們使用字串 (String) 這個詞來描述任何一段文字。它可以是一個字母、一整句話,甚至是一個包含數字和符號的密碼。在本指南中,我們將學習如何「處理」字串——這基本上意味著對它們進行切片、連接和測量,以確保我們的程式能精確地執行我們想要的任務!

你可以把字串想像成一條珠子項鍊。每一顆珠子都是一個字元(字母、空格或符號)。讀完這些筆記後,你將會成為計算珠子數量、挑選特定珠子,甚至將它們轉換為數字的專家。讓我們開始吧!

1. 測量字串:長度 (Length)

長度 (Length) 運算可以告訴我們一個字串中總共有多少個字元。這包括字母、數字、標點符號,甚至是空格

它是如何運作的:
想像一下字串 "Pizza Pie"
P (1), i (2), z (3), z (4), a (5), [空格] (6), P (7), i (8), e (9)。
所以它的長度9

快速回顧:
別忘了空格!電腦將空格視為與字母 'A' 一樣的字元。如果你忘了計算空格,算出來的長度就會出錯喔。

重點總結: 長度 (Length) 給出字串中每一個字元的總數。

2. 尋找字元:位置 (Position)

位置 (Position)(有時稱為索引,indexing)讓我們能夠找到特定字元在字串中的位置。

如果起初覺得有點怪怪的,別擔心…… 電腦有點特別。它們不是從 1 開始數,而是從 0 開始!這稱為零索引 (zero-indexing)

「置物櫃」類比:
想像一排學校的置物櫃。第一個置物櫃編號是 0,第二個是 1,以此類推。要找到一個字母的「位置」,你只需要找到它的置物櫃編號即可。

例子:"CODA"
C 位於位置 0
O 位於位置 1
D 位於位置 2
A 位於位置 3

常見錯誤: 許多學生會認為一個 4 個字母的單字,最後一個字母是在位置 4。但實際上它是在位置 3,因為我們是從 0 開始數的!

重點總結: 第一個字元永遠位於 位置 0

3. 進行切片:子字串 (Substring)

子字串 (Substring) 是較大字串的一小部分。就像是從文字中「截取」出一段一樣。

要取得子字串,你通常需要告訴電腦兩件事:
1. 從哪裡開始(位置)。
2. 要取出多少個字元(切片的長度)。

例子:讓我們從 "Chocolate" 中取出一個子字串。
如果我們從位置 0 開始,並取出 4 個字元...
C (0), h (1), o (2), c (3)
結果就是 "Choc"

重點總結: 子字串 (Substring) 讓你能夠從較長的字串中「切下」一段特定的文字。

4. 連接字串:串接 (Concatenation)

串接 (Concatenation) 是一個專業術語,意思就是將兩個或多個字串連接起來變成一個長字串。你可以把它想像成把兩個樂高積木拼在一起,或是用膠水把它們黏住。

步驟範例:
1. 取出字串 A:"Super"
2. 取出字串 B:"Hero"
3. 將它們串接 (Concatenate)
4. 結果:"SuperHero"

你知道嗎? 如果你想在單字之間加一個空格,你必須自己加上去!串接 "Hello""World" 會得到 "HelloWorld"。要得到 "Hello World",你必須連接 "Hello" + " " + "World"

重點總結: 串接 (Concatenation) + 膠水 = 連接後的文字

5. 字元與編碼 (Characters and Codes)

電腦實際上並不認識字母,它們只認識數字。每個字元都有一個特殊的「ID 編號」,稱為字元編碼 (character code)(使用如 ASCII 或 Unicode 等系統)。

將字元轉換為字元編碼

此運算會讀取一個字母並告訴你它的秘密數字。
例子:在 ASCII 中,字元 'A' 會轉換為編碼 65

將字元編碼轉換為字元

這剛好相反!你輸入一個數字,它會告訴你對應的字母。
例子:編碼 97 會轉換為字元 'a'

記憶小撇步: A = 65。如果你記住大寫 'A' 是 65,你就能推算出 'B' 是 66,而 'C' 是 67!

重點總結: 這些運算就像是人類字母與電腦數字系統之間的翻譯官

6. 字串轉換運算

有時候,我們儲存的數字是文字格式(字串),但我們需要用它來進行數學運算。又或者,我們得到了一個數字結果,想要把它當作句子的一部分顯示出來。這時我們就需要使用轉換運算 (conversion operations)

1. 字串轉整數 (String to Integer):"10"(文字)轉換為 10(可以用來加減的整數)。
2. 字串轉實數 (String to Real):"3.14"(文字)轉換為 3.14(帶有小數點的數值)。
3. 整數轉字串 (Integer to String): 將數字 50 轉換為文字 "50",這樣它就可以連接到句子中。
4. 實數轉字串 (Real to String):9.99 轉換為文字 "9.99"

為什麼這很重要?
如果你嘗試將兩個字串(例如 "5" + "5")「相加」,串接可能會給你 "55"!如果你希望答案是 10,你必須先將它們轉換為整數

快速回顧框:
- 整數 (Integer) = 整數(例如 7)
- 實數 (Real) = 小數(例如 7.5)
- 字串 (String) = 文字(例如 "7")

重點總結: 轉換讓你能夠改變資料類型 (data types),以便你用數字進行數學計算,並用字串進行文字顯示。

總結檢查清單

你能解釋這 7 個概念嗎?
1. 長度 (Length): 有多少個字元?
2. 位置 (Position): 字元在哪裡?(記得從 0 開始!)
3. 子字串 (Substring): 字串的一小部分切片。
4. 串接 (Concatenation): 將字串連接在一起。
5. 字元轉編碼 (Character to Code): 字母 \(\rightarrow\) 數字。
6. 編碼轉字元 (Code to Character): 數字 \(\rightarrow\) 字母。
7. 轉換 (Conversions): 在字串、整數和實數類型之間轉換。