gpt4 book ai didi

swift - 如何将子字符串取到字符的第一个索引?

转载 作者:搜寻专家 更新时间:2023-11-01 05:53:39 25 4
gpt4 key购买 nike

我是 Swift 的新手;我花了一个上午阅读 StackOverflow 并尝试了许多策略,但都没有成功,以完成以下任务:

我有一个字符串,说“12345 是你的号码!”

我想提取“12345”到一个变量。

在 Java 中,我会做类似的事情:

String myStr = "12345 is your number!";
return myStr.substring(0, myStr.indexOf(" "));

如何在 Swift 中做类似的事情?我不想硬编码任何关于结束索引将是什么的假设。它可能是 5 个字符,也可能不是。我只想获取所有内容的子字符串,直到第一次出现“”,无论它在哪里。

到目前为止我得到的最接近的是:

var myMessage  = "12345 is your number!"
myMessage.endIndex.advancedBy(myMessage.characters.count - myMessage.characters.indexOf(" "))

但由于我还没有完全理解的原因,它无法编译(“二元运算符‘-’不能应用于距离类型(又名‘Int’)和‘String.CharacterView.Index?’”)

在此方面的任何帮助表示赞赏。谢谢。

最佳答案

像这样的东西应该可以工作:

myMessage.substringToIndex(myMessage.characters.indexOf(" ")!)

请注意,在这段代码中,我强制解包了可选的。如果不能保证字符串中有该空格,则将索引置于可选绑定(bind)中可能更有意义。

使用可选绑定(bind),它看起来像这样:

if let index = myMessage.characters.indexOf(" ") {
let result = myMessage.substringToIndex(index)
}

关于swift - 如何将子字符串取到字符的第一个索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35950665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com