加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何使用String.substringWithRange? (或者,范围如何工作在Swif

发布时间:2020-12-14 06:20:31 所属栏目:百科 来源:网络整理
导读:我还没有能够弄清楚如何在Swift中获取一个String的子字符串: var str = “Hello,playground”func test(str: String) - String { return str.substringWithRange( /* What goes here? */ )}test (str) 我不能在Swift中创建一个范围。在游乐场的自动完成不是
我还没有能够弄清楚如何在Swift中获取一个String的子字符串:
var str = “Hello,playground”
func test(str: String) -> String {
 return str.substringWithRange( /* What goes here? */ )
}
test (str)

我不能在Swift中创建一个范围。在游乐场的自动完成不是超级有用的 – 这是它的建议:

return str.substringWithRange(aRange: Range<String.Index>)

我没有找到任何在Swift标准参考库帮助。这里是另一个野生猜测:

return str.substringWithRange(Range(0,1))

和这个:

let r:Range<String.Index> = Range<String.Index>(start: 0,end: 2)
return str.substringWithRange(r)

我看过其他答案(Finding index of character in Swift String)似乎暗示,因为String是NSString的桥梁类型,“老”方法应该工作,但不清楚如何 – 例如,这不工作(不出现是有效的语法):

let x = str.substringWithRange(NSMakeRange(0,3))

想法?

您可以使用substringWithRange方法。它需要一个开始和结束String.Index。
var str = "Hello,playground"
str.substringWithRange(Range<String.Index>(start: str.startIndex,end: str.endIndex)) //"Hello,playground"

要更改开始和结束索引,请使用advancedBy(n)。

var str = "Hello,playground"
str.substringWithRange(Range<String.Index>(start: str.startIndex.advancedBy(2),end: str.endIndex.advancedBy(-1))) //"llo,playgroun"

你也可以使用NSString方法与NSRange,但你必须确保你使用NSString像这样:

let myNSString = str as NSString
myNSString.substringWithRange(NSRange(location: 0,length: 3))

注意:正如JanX2所提到的,这第二种方法对unicode字符串不安全。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读