Как добавить символ в строку в Swift?
Это использовалось для работы в Xcode 6 Beta 5, теперь я получаю ошибку компиляции в бета-версии 6
for aCharacter : Character in aString {
var str:String = ""
var newStr:String = str.append(aCharacter) // ERROR
....
}
Ошибка. Невозможно вызвать 'append' с типом аргумента 'Character'
Ответы
Ответ 1
Обновление для движущейся цели: Swift:
У Swift больше нет оператора +, который может принимать строку и массив символов. (Существует строковый метод appendContentsOf()
, который может быть использован для этой цели).
Лучший способ сделать это сейчас - ответ Martin Rs в комментарии ниже:
var newStr:String = str + String(aCharacter)
Оригинальный ответ:
Это изменилось в бета-версии 6. Проверьте примечания к выпуску. Я все еще загружаю его, но попробуйте использовать:
var newStr:String = str + [aCharacter]
Ответ 2
Это также работает
var newStr:String = str + String(aCharacter)
Ответ 3
append append(c: Character)
Правильный метод, но ваш код имеет две другие проблемы.
Во-первых, чтобы перебрать символы строки, вы должны получить доступ к свойству String.characters
.
Во-вторых, метод append не возвращает ничего, поэтому вы должны удалить newStr.
Затем код выглядит следующим образом:
for aCharacter : Character in aString.characters {
var str:String = ""
str.append(aCharacter)
// ... do other stuff
}
Ответ 4
Другой возможный вариант:
var s: String = ""
var c: Character = "c"
s += "\(c)"
Ответ 5
var stringName: String = "samontro"
var characterNameLast: Character = "n"
stringName += String(characterNameLast) // You get your name "samontron"
Ответ 6
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!*
Ответ 7
Мне нужно было получить инициалы от имени и фамилии и объединить их. Используя бит и куски приведенных выше ответов, это сработало для меня:
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)
}
Ответ 8
Согласно Swift 4 Documentation,
Вы можете добавить значение символа в переменную String с помощью метода append() типа String:
var welcome = "hello there"
let exclamationMark: Character = "!"
welcome.append(exclamationMark)
// welcome now equals "hello there!"