类似于' String.indexOf(" text")'函数在Swift中

时间:2017-04-16 01:00:32

标签: java swift string indexof

我是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元素的索引。我环顾四周,找不到任何东西。 我需要它是找到我将要子串的字符串的startIndexendIndexes。我理解用string.endIndex.advanceBy(-9)之类的东西可以更轻松地完成它,但是我想要查看的字符串有几段长。

找到解决方案: NSString.range(of: "string").location会返回我一直在寻找的索引,以防有人想知道

更新

Leo的回答也适用于任何寻找替代方案的人:

  

请注意,您应该确保只搜索范围&#34;的&#34;串   在发生之后,&#34;是&#34;。 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" }

1 个答案:

答案 0 :(得分:0)

您可以使用Swifts range的{​​{1}}方法实现此类目标。它将返回搜索字符串中给定字符串的范围。

在Swift中,开始和结束索引是结果String的{​​{1}}和lowerBound

以下是基于您的示例的示例:

upperBound

你可以把它放在游乐场里玩它。