我如何从字符串变量使用Swift删除最后一个字符?在文档中找不到。

下面是完整的例子:

var expression = "45+22"
expression = expression.substringToIndex(countElements(expression) - 1)

当前回答

Swift 3(根据文档)2016年11月20日

let range = expression.index(expression.endIndex, offsetBy: -numberOfCharactersToRemove)..<expression.endIndex
expression.removeSubrange(range)

其他回答

全局的dropLast()函数作用于序列,因此也作用于字符串:

var expression  = "45+22"
expression = dropLast(expression)  // "45+2"

// in Swift 2.0 (according to cromanelli's comment below)
expression = String(expression.characters.dropLast())

使用新的Substring类型用法:

斯威夫特4:

var before: String = "Hello world!"
var lastCharIndex: Int = before.endIndex
var after:String = String(before[..<lastCharIndex])
print(after) // Hello world

短:

var before: String = "Hello world!"
after = String(before[..<before.endIndex])
print(after) // Hello world

函数的作用是:删除字符串的最后一个元素。

var expression = "45+22"
expression = expression.dropLast()

斯威夫特4

var welcome = "Hello World!"
welcome = String(welcome[..<welcome.index(before:welcome.endIndex)])

or

welcome.remove(at: welcome.index(before: welcome.endIndex))

or

welcome = String(welcome.dropLast())

我建议使用NSString来处理你想要操作的字符串。实际上,作为一个开发人员,我从来没有遇到过NSString的问题,Swift String可以解决…我明白其中的微妙之处。但我还没有真正需要它们。

var foo = someSwiftString as NSString

or

var foo = "Foo" as NSString

or

var foo: NSString = "blah"

然后整个简单NSString字符串操作的世界就向你敞开了。

作为问题的答案

// check bounds before you do this, e.g. foo.length > 0
// Note shortFoo is of type NSString
var shortFoo = foo.substringToIndex(foo.length-1)