diff --git a/source-tw/chapter2/03_Strings_and_Characters.md b/source-tw/chapter2/03_Strings_and_Characters.md index 0ed55d68..5153d4a5 100644 --- a/source-tw/chapter2/03_Strings_and_Characters.md +++ b/source-tw/chapter2/03_Strings_and_Characters.md @@ -154,14 +154,14 @@ let yenSign: Character = "¥" 通過調用全局`countElements`函數,並將字符串作為參數進行傳遞,可以獲取該字符串的字符數量。 ```swift -let unusualMenagerie = "Koala □謠Snail □□Penguin □笠Dromedary □□ +let unusualMenagerie = "Koala □謠Snail □□Penguin □笠Dromedary □□ println("unusualMenagerie has \(countElements(unusualMenagerie)) characters") // 打印輸出:"unusualMenagerie has 40 characters" ``` > 注意: 不同的 Unicode 字符以及相同 Unicode 字符的不同表示方式可能需要不同數量的內存空間來存儲。所以 Swift 中的字符在一個字符串中並不一定佔用相同的內存空間。因此字符串的長度不得不通過迭代字符串中每一個字符的長度來進行計算。如果您正在處理一個長字符串,需要注意`countElements`函數必須遍歷字符串中的字符以精準計算字符串的長度。 -> 另外需要注意的是通過`countElements`返回的字符數量並不總是與包含相同字符的`NSString`的`length`屬性相同。`NSString`的`length`屬性是基於利用 UTF-16 表示的十六位代碼單元數字,而不是基於 Unicode 字符。為了解決這個問題,`NSString`的`length`屬性在被 Swift 的`String`訪問時會成為`utf16count`。 +> 另外需要注意的是通過`countElements`返回的字符數量並不總是與包含相同字符的`NSString`的`length`屬性相同。`NSString`的`length`屬性是基於利用 UTF-16 表示的十六位代碼單元數字,而不是基於 Unicode 字符。 ## 連接字符串和字符 (Concatenating Strings and Characters) @@ -336,7 +336,7 @@ Swift 提供了幾種不同的方式來訪問字符串的 Unicode 表示。 下面由`D``o``g``!`和`□栨`DOG FACE`,Unicode 標量為`U+1F436`)組成的字符串中的每一個字符代表著一種不同的表示: ```swift -let dogString = "Dog!□皂 +let dogString = "Dog!□皂 ```