2014-09-25 68 views
1

我試圖使用「+ =」將字符附加到字符串,但它並不真正起作用。 一旦我嘗試使用append方法,它的工作原理。我只是想知道爲什麼。 編譯器說「字符串與Unit8不相同」。將字符附加到Swift中的字符串

let puzzleInput = "great minds think alike" 
var puzzleOutput = " " 
for character in puzzleInput { 

    switch character { 
     case "a", "e", "i", "o", "u", " ": 
     continue 

    default: 
     // error : doesn't work 
     puzzleOutput += character 
     //puzzleOutput.append(character) 
    } 
} 
println(puzzleOutput) 
+2

僅供參考,如果你把它會工作'字符'首先是字符串:'puzzleOutput + = String(字符)'。 – 2014-09-25 01:58:16

回答

3

20140818,蘋果更新:

更新了連接字符串和字符節以反映該字符串和字符值可以不再與加法運算符(+)或加法賦值運算符(合併+ =)。這些運算符現在僅用於字符串值。使用字符串類型的附加方法將單個字符值附加到字符串的末尾。

Document Revision History 2014-08-18

+0

非常感謝。我試着用puzzleOutput + =「\(character)」。它的工作原理。 – Tosh 2014-09-25 01:57:40

+0

@Toshi puzzleOutput + =「(\字符)」也應該起作用。 – jseanj 2014-09-25 01:59:22

+0

噢,我的意思是puzzleOutput + =「(\字符)」。不管怎麼說,還是要謝謝你! – Tosh 2014-09-25 02:00:55

0

要將Character追加到斯威夫特String你可以做類似下面的東西:

var myString: String = "ab" 
let myCharacter: Character = "c" 
let myStringChar: String = "d" 

myString += String(myCharacter) // abc 
myString += myStringChar // abcd 
0

更新版本

let puzzleInput = "great minds think alike" 
var puzzleOutput = "" 
for character in puzzleInput.characters { 
    switch character { 
    case "a", "e", "i", "o", "u", " ": 
    continue 
    default: 
    puzzleOutput += String(character) 
    } 
} 
print(puzzleOutput) 
// prints "grtmndsthnklk"