我对Swift很新; 我花了一个上午阅读StackOverflow并尝试了许多策略,徒劳无功,以实现以下目标:
我有一个字符串,说"12345是你的号码!"
我想将"12345"提取到变量中.
在Java中,我会做类似的事情:
String myStr = "12345 is your number!";
return myStr.substring(0, myStr.indexOf(" "));
Run Code Online (Sandbox Code Playgroud)
我如何在Swift中做类似的事情?我不想硬编码关于结束指数将是什么的任何假设.它可能是5个字符,也可能不是.我只想把所有内容的子字符串带到第一次出现的"",无论在哪里.
我到目前为止最接近的是:
var myMessage = "12345 is your number!"
myMessage.endIndex.advancedBy(myMessage.characters.count - myMessage.characters.indexOf(" "))
Run Code Online (Sandbox Code Playgroud)
但它不会因为我还没完全编译而被编译("二进制运算符' - '不能应用于Distance类型的操作数(又名'Int')和'String.CharacterView.Index?'")
对此有任何帮助表示赞赏.谢谢.
这样的事情应该有效:
myMessage.substringToIndex(myMessage.characters.indexOf(" ")!)
Run Code Online (Sandbox Code Playgroud)
请注意,在此代码中我强制解包可选.如果您不能保证在字符串中有该空格,那么将索引放在可选绑定中可能更有意义.
使用可选绑定,它看起来像这样:
if let index = myMessage.characters.indexOf(" ") {
let result = myMessage.substringToIndex(index)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
783 次 |
| 最近记录: |