试图从Swift中的字符串中删除第一个字符。我使用下面编写的代码,但第二行不断崩溃我的应用程序。
这不是解开字符串索引的正确方法吗?是什么?
var tempText = text
let toRemove = tempText?.startIndex ?? String.Index(0)
tempText?.remove(at: toRemove)
答案 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()