如何在Swift中将字符附加到字符串?

时间:2014-08-23 01:29:01

标签: ios swift string

这曾经在Xcode 6 Beta 5中工作,现在我在Beta 6中遇到了编译错误

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

错误:无法使用参数类型append

调用Character

8 个答案:

答案 0 :(得分:31)

更新移动目标是Swift:

Swift不再有一个+运算符,可以接受String和一个字符数组。 (有一个字符串方法appendContentsOf()可以用于此目的)。

现在最好的方法是Martin R在下面的评论中回答:

var newStr:String = str + String(aCharacter)

原始答案: 这在Beta 6中已更改。请查看发行说明。我仍在下载它,但请尝试使用:

var newStr:String = str + [aCharacter]

答案 1 :(得分:11)

这也有效

var newStr:String = str + String(aCharacter)

答案 2 :(得分:5)

追加append(c: Character)是正确的方法,但您的代码还有其他两个问题。

首先,要迭代字符串的字符,您必须访问String.characters属性。

第二个是append方法没有返回任何内容,所以你应该删除newStr。

然后代码如下:

for aCharacter : Character in aString.characters {
    var str:String = ""
    str.append(aCharacter)
    // ... do other stuff
}

答案 3 :(得分:4)

另一种可能的选择是

var s: String = ""
var c: Character = "c"
s += "\(c)"

答案 4 :(得分:1)

var stringName: String = "samontro"
var characterNameLast: Character = "n"
stringName += String(characterNameLast) // You get your name "samontron"

答案 5 :(得分:1)

根据Swift 4 Documentation, 您可以使用String类型的append()方法将Character值附加到String变量:

var welcome = "hello there"

let exclamationMark: Character = "!"
welcome.append(exclamationMark)
// welcome now equals "hello there!"

答案 6 :(得分:0)

 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 :(得分:0)

我必须从名字和姓氏中获取首字母,并将它们连接在一起。使用上述答案的一些部分,这对我有用:

  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)
            }