我是Swift的新手,我正在寻求帮助。
我有一个字符串
let someString = "Here is an example of string"
我希望得到is an example
部分内容。
在Java中我可以做类似的事情:
String someString = "Here is an example of string"
String s = someString.substring(someString.indexOf("is "), someString.indexOf(" of"));
我想知道Swift与Java有什么类似的东西
String.indexOf("some string")
以查找String元素的索引。我环顾四周,找不到任何东西。
我需要它是找到我将要子串的字符串的startIndex
和endIndexes
。我理解用string.endIndex.advanceBy(-9)
之类的东西可以更轻松地完成它,但是我想要查看的字符串有几段长。
找到解决方案:
NSString.range(of: "string").location
会返回我一直在寻找的索引,以防有人想知道
更新
Leo的回答也适用于任何寻找替代方案的人:
请注意,您应该确保只搜索范围"的"串 在发生之后,"是"。
if let lower = someString.range(of: "is ")?.upperBound, let upper = someString.range(of: " of", range: lower..<someString.endIndex)?.lowerBound { let substring = someString[lower..<upper] // "an example" }
答案 0 :(得分:0)
您可以使用Swifts range
的{{1}}方法实现此类目标。它将返回搜索字符串中给定字符串的范围。
在Swift中,开始和结束索引是结果String
的{{1}}和lowerBound
。
以下是基于您的示例的示例:
upperBound
你可以把它放在游乐场里玩它。