Подтвердить что ты не робот

Как добавить символ в строку в Swift?

Это использовалось для работы в Xcode 6 Beta 5, теперь я получаю ошибку компиляции в бета-версии 6

for aCharacter : Character in aString {
    var str:String = ""
    var newStr:String = str.append(aCharacter) // ERROR
    ....
}

Ошибка. Невозможно вызвать 'append' с типом аргумента 'Character'

4b9b3361

Ответ 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!"