从字符串中删除最后一个字符 Swift语言

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

这里是完整的例子:

var expression = "45+22"
expression = expression.substringToIndex(countElements(expression) - 1)
新的Swift 3.0方式

API已经变得更加迅速,因此Foundation扩展已经改变了一点:

var name: String = "Dolphin"
var truncated = name.substring(to: name.index(before: name.endindex))
print(name)      // "Dolphin"
print(truncated) // "Dolphi"

或者就地版本:

var name: String = "Dolphin"
name.remove(at: name.index(before: name.endindex))
print(name)      // "Dolphi"

谢谢Zmey,Rob Allen!

Swift 2.0方式

有几种方法可以实现这一点:

通过基金会扩展,尽管不是Swift库的一部分:

var name: String = "Dolphin"
var truncated = name.substringToIndex(name.endindex.predecessor())
print(name)      // "Dolphin"
print(truncated) // "Dolphi"

使用removeRange()方法(更改名称):

var name: String = "Dolphin"    
name.removeAtIndex(name.endindex.predecessor())
print(name) // "Dolphi"

使用dropLast()函数

var name: String = "Dolphin"
var truncated = String(name.characters.dropLast())
print(name)      // "Dolphin"
print(truncated) // "Dolphi"

Old String.Index(Xcode 6 Beta 4)方式

由于Swift中的String类型旨在提供出色的UTF-8支持,因此您不能再使用Int类型访问字符索引/范围/子字符串。相反,你使用String.Index:

let name: String = "Dolphin"
let stringLength = count(name) // Since swift1.2 `countElements` became `count`
let substringIndex = stringLength - 1
name.substringToIndex(advance(name.startIndex,substringIndex)) // "Dolphi"

或者(对于更实用,但较少教育的例子),你可以使用endindex:

let name: String = "Dolphin"
name.substringToIndex(name.endindex.predecessor()) // "Dolphi"

注意:我发现this是理解String.Index的一个很好的起点

老(pre-beta 4)方式

你可以简单地使用substringToIndex()函数,提供一个小于字符串的长度:

let name: String = "Dolphin"
name.substringToIndex(countElements(name) - 1) // "Dolphi"

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...