这曾经在Xcode 6 Beta 5中工作,现在我在Beta 6中遇到了编译错误
for aCharacter : Character in aString {
var str:String = ""
var newStr:String = str.append(aCharacter) // ERROR
....
}
错误:无法使用参数类型append
Character
答案 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)
}