Swift的字符串基础知识

时间:2017-09-22 16:53:01

标签: swift string swift3

试图从Swift中的字符串中删除第一个字符。我使用下面编写的代码,但第二行不断崩溃我的应用程序。

这不是解开字符串索引的正确方法吗?是什么?

var tempText = text
let toRemove = tempText?.startIndex ?? String.Index(0)
tempText?.remove(at: toRemove)

3 个答案:

答案 0 :(得分:3)

您可以使用Collection方法dropFirst:

if let text = text { // you need also to unwrap your optional
    let tempText = String(text.characters.dropFirst())  // And initialize a new String with your CharacterView
}

在Swift 4中,String符合Collection,因此您可以直接在字符串上使用它:

if let text = text {
    let tempText = text.dropFirst()  // "bc"
}

答案 1 :(得分:1)

您正在初始化String.Index类型,而不是获取tempText字符串的索引。

此外,startIndex不是可选的,tempText,但是。{/ p>

您应该检查tempText是否存在且不为空(您可以使用if let执行此操作),如果符合这些条件,则删除startIndex处的字符。

var tempText = text

if let toRemove = tempText?.startIndex {
    tempText?.remove(at: toRemove)
}

答案 2 :(得分:0)

如果您使用的是Swift 4,则可以使用:

var tempText = text.dropFirst()