2015-06-20 40 views
5

我正在嘗試Swift操場。當我嘗試下面的代碼時,它不起作用,並告訴我'String' does not have a member named 'Characters'。我期望打印the number of characters in cafe is 4。你能給我任何提示嗎?謝謝。字符串沒有名字符的成員?

var word = "cafe" 
print("the number of characters in \(word) is \(word.characters.count)") 

回答

13

charactersString在 「新」 夫特2附帶的Xcode 7的β的特性。

您可能正在使用的Xcode 6.3.2與雨燕1.2,那麼它是

print("the number of characters in \(word) is \(count(word))") 

兩件事情雨燕2.0改變了這裏:

  • String並不再符合SequenceType,你有明確地訪問 .characters
  • 全局count()函數已被替換爲「協議擴展」方法count()
+0

它works.Thanks 。 Stackoverflow很棒:-) – David

+0

答案很好。請問什麼是最佳實踐(或其他典型做法),以在「新」Swift2中獲取字符串的長度。因爲像word.characters.count這樣的表達式似乎有點複雜。謝謝。 –

+0

@EricTsui:據我所知,這*是*你如何確定長度。正如您從Xcode 7 beta發行說明中可以看到的,已經引入了'characters'屬性以將相當一般的「Unicode擴展字形羣集視圖」與「UTF-16視圖」或「UTF-8視圖」區分開來。所以'word.utf8.count'會給你一個UTF-8字符串的長度。 –

0

我想你是從iBook閱讀Swift 2教程。這是新功能。它只會在Xcode 7中工作。

0

使用count字符方法:

println(the number of characters in \(word) is \(count(word))") 

與SWIFT 2:

word.characters.count 
0

而且,以獲得實際的字符,你可以撥打:

let characters = Array(string) 

然後你可以簡單地電話:

let length = characters.count 

但是,您也可以只使用計數功能,如果你不需要重複的文字或任何在雨燕1.2:

let length = count(string) 

在斯威夫特2:

let length = string.count() 
相關問題