试图从Swift中的字符串中移除第一个字符。我使用下面编写的代码,但第二行不断崩溃我的应用程序。Swift中的字符串基础知识
这不是解开字符串索引的正确方法吗?什么是?
var tempText = text
let toRemove = tempText?.startIndex ?? String.Index(0)
tempText?.remove(at: toRemove)
试图从Swift中的字符串中移除第一个字符。我使用下面编写的代码,但第二行不断崩溃我的应用程序。Swift中的字符串基础知识
这不是解开字符串索引的正确方法吗?什么是?
var tempText = text
let toRemove = tempText?.startIndex ?? String.Index(0)
tempText?.remove(at: toRemove)
要初始化String.Index
型,而不是获取tempText
字符串的索引。
而且,startIndex
不是可选的tempText
,但是是。
您应该检查是否存在tempText
和不为空(你可以简单地这样做有if let
),并在startIndex
删除字符,如果这些条件相匹配。
var tempText = text
if let toRemove = tempText?.startIndex {
tempText?.remove(at: toRemove)
}
谢谢,这清理完美。现在很明显,你解释* facepalm * – daredevil1234
耶稣,所有的力量解开了什么?你*已经*有一个if语句,只需将其更改为条件绑定即可。 – Alexander
@ the4kman这是真的吗? 'tempText = tempText?.characters.dropFirst()。map(String.init)?? tempText' – Alexander
您可以使用收集方法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
}
在斯威夫特4字符串符合集合,以便你可以在你的字符串直接使用它:
if let text = text {
let tempText = text.dropFirst() // "bc"
}
什么是崩溃的消息?字符串是否为空? – dan
您可能希望看到https://stackoverflow.com/questions/28445917/what-is-the-most-succinct-way-to-remove-the-first-character-from-a-string-in-swi – rmaddy