从字符串中删除最后一个字符。 Swift语言 [英] Remove last character from string. Swift language

查看:2158
本文介绍了从字符串中删除最后一个字符。 Swift语言的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



以下是完整示例:

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


解决方案

新的Swift 3.0方式



API已经获得更多 swifty ,因此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+ Way



有几种方法可以完成此操作:



通过Foundation扩展,尽管不是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
/ pre>

使用 dropLast()函数:

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

Old String.Index 6 Beta 4 +)方式



由于 String Swift中的类型旨在提供出色的UTF-支持,则不能再使用 Int 类型访问字符索引/范围/子字符串。而是使用 String.Index

  let name:String = Dolphin
let stringLength = count(name)//从swift1.2`countElements`成为`count`
let substringIndex = stringLength - 1
name.substringToIndex ,substringIndex))//Dolphi

此外(更实用,您可以使用 endIndex

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

注意:我发现是理解的理想起点, String.Index



旧版(预测试版4)



你可以简单地使用 substringToIndex()函数,它的长度小于 String

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


How can I remove last character from String variable using Swift? Can't find it in documentation.

Here is full example:

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

解决方案

New Swift 3.0 Way

The APIs have gotten a bit more swifty, and as a result the Foundation extension has changed a bit:

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

Or the in-place version:

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

Thanks Zmey, Rob Allen!

Swift 2.0+ Way

There are a few ways to accomplish this:

Via the Foundation extension, despite not being part of the Swift library:

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

Using the removeRange() method (which alters the name):

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

Using the dropLast() function:

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

Old String.Index (Xcode 6 Beta 4 +) Way

Since String types in Swift aim to provide excellent UTF-8 support, you can no longer access character indexes/ranges/substrings using Int types. Instead, you use 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"

Alternatively (for a more practical, but less educational example) you can use endIndex:

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

Note: I found this to be a great starting point for understanding String.Index

Old (pre-Beta 4) Way

You can simply use the substringToIndex() function, providing it one less than the length of the String:

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

这篇关于从字符串中删除最后一个字符。 Swift语言的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆