How to append a character to a string in Swift?

后端 未结 8 1770
长情又很酷
长情又很酷 2021-01-01 10:15

This used to work in Xcode 6: Beta 5. Now I\'m getting a compilation error in Beta 6.

for aCharacter: Character in aString {
    var str: String = \"\"
    v         


        
相关标签:
8条回答
  • 2021-01-01 10:18
    var stringName: String = "samontro"
    var characterNameLast: Character = "n"
    stringName += String(characterNameLast) // You get your name "samontron"
    
    0 讨论(0)
  • 2021-01-01 10:21

    Update for the moving target that is Swift:

    Swift no longer has a + operator that can take a String and an array of characters. (There is a string method appendContentsOf() that can be used for this purpose).

    The best way of doing this now is Martin R’s answer in a comment below:

    var newStr:String = str + String(aCharacter)
    

    Original answer: This changed in Beta 6. Check the release notes.I'm still downloading it, but try using:

    var newStr:String = str + [aCharacter]
    
    0 讨论(0)
  • 2021-01-01 10:21

    This also works

    var newStr:String = str + String(aCharacter)
    
    0 讨论(0)
  • 2021-01-01 10:28

    append append(c: Character) IS the right method but your code has two other problems.

    The first is that to iterate over the characters of a string you must access the String.characters property.

    The second is that the append method doesn't return anything so you should remove the newStr.

    The code then looks like this:

    for aCharacter : Character in aString.characters {
        var str:String = ""
        str.append(aCharacter)
        // ... do other stuff
    }
    
    0 讨论(0)
  • 2021-01-01 10:29

    I had to get initials from first and last names, and join them together. Using bits and pieces of the above answers, this worked for me:

      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)
                }
    
    0 讨论(0)
  • 2021-01-01 10:37

    According to Swift 4 Documentation , You can append a Character value to a String variable with the String type’s append() method:

    var welcome = "hello there"
    
    let exclamationMark: Character = "!"
    welcome.append(exclamationMark)
    // welcome now equals "hello there!"
    
    0 讨论(0)
提交回复
热议问题