Cela fonctionnait dans Xcode 6 Beta 5 maintenant je reçois une erreur de compilation dans Beta 6
for aCharacter : Character in aString {
var str:String = ""
var newStr:String = str.append(aCharacter) // ERROR
....
}
Erreur : Impossible d'appeler append
avec un type d'argument Character
Mise à jour pour la cible mobile qui est Swift:
Swift n'a plus d'opérateur + pouvant prendre une chaîne et un tableau de caractères. (Il existe une méthode de chaîne appendContentsOf()
pouvant être utilisée à cette fin).
La meilleure façon de procéder est la réponse de Martin R dans un commentaire ci-dessous:
var newStr:String = str + String(aCharacter)
Réponse originale: Cela a changé dans la version bêta 6. Vérifiez les notes de publication.
var newStr:String = str + [aCharacter]
Cela fonctionne aussi
var newStr:String = str + String(aCharacter)
ajoute append(c: Character)
IS à la bonne méthode mais votre code a deux autres problèmes.
La première est que pour parcourir les caractères d'une chaîne, vous devez accéder à la propriété String.characters
.
La seconde est que la méthode append ne renvoie rien, vous devez donc supprimer le newStr.
Le code ressemble alors à ceci:
for aCharacter : Character in aString.characters {
var str:String = ""
str.append(aCharacter)
// ... do other stuff
}
Une autre option possible est
var s: String = ""
var c: Character = "c"
s += "\(c)"
var stringName: String = "samontro"
var characterNameLast: Character = "n"
stringName += String(characterNameLast) // You get your name "samontron"
Selon Documentation Swift 4 , Vous pouvez ajouter une valeur de caractère à une variable String avec la méthode append () du type String:
var welcome = "hello there"
let exclamationMark: Character = "!"
welcome.append(exclamationMark)
// welcome now equals "hello there!"
Je devais obtenir les initiales du prénom et du nom de famille et les joindre. En utilisant des morceaux des réponses ci-dessus, cela a fonctionné pour moi:
var initial: String = ""
if !givenName.isEmpty {
let char = (givenName as NSString).substring(with: NSMakeRange(0, 1))
let str = String(char)
initial.append(str)
}
if !familyName.isEmpty {
let char = (familyName as NSString).substring(with: NSMakeRange(0, 1))
let str = String(char)
initial.append(str)
}
let original:String = "Hello"
var firstCha = original[original.startIndex...original.startIndex]
var str = "123456789"
let x = (str as NSString).substringWithRange(NSMakeRange(0, 4))
var appendString1 = "\(firstCha)\(x)" as String!
// final name
var namestr = "yogesh"
var appendString2 = "\(namestr) (\(appendString1))" as String!*