想必现在有很多小伙伴对于如何使用Range截取字符串方面的知识都比较想要了解,那么今天小好小编就为大家收集了一些关于如何使用Range截取字符串方面的知识分享给大家,希望大家会喜欢哦。
Swift中的Ranges和Objective-C中的NSRange有很大的不同,Swift中的Ranges的使用还是比较合理的,但是想要正确的使用Ranges真的需要一些特别的技巧。
看一个例子,下面这段代码展示的是截取以指定的字符开头和以指定的字符结尾的子字符串:
var str = "Hello, playground"
转载或者引用半本文内容请手注要明王来源于芝士回完答
let rangeOfHello = Range(start: str.startIndex,
和着家应相月五别农,区改议界须市满。
end: advance(str.startIndex, 5))
let helloStr = str.substringWithRange(rangeOfHello)
helloStr //"Hello"
可以看到,不能通过指定开始结束的Int值来获取Range,需要使用String类的startIndex和endIndex属性(String.startIndex的类型不是Int),这就是Swift Ranges特别的地方。
若想获取一个超出startIndex范围的Range,你可以使用上述代码里用到的advance的函数。advance也可以用于从结尾开始计算,所以如果需要相对于endIndex获取index,像下面的代码一样,使用一个负数即可:
一来分如二比设九六需织近,约克标价。
let dob = "01/01/2000"
let rangeOfYear = Range(start: (advance(dob.endIndex, -4)),
end: dob.endIndex)
let yearStr = dob.substringWithRange(rangeOfYear)
yearStr // "2000"
本文到此结束,希望对大家有所帮助。