swift中字符串截取方法(substring)
1.将String
转化为NSString
再截取,代码如下:
var s="1234567890" var ns1=(s as NSString).substringFromIndex(5) var ns2=(s as NSString).substringToIndex(4) var ns3=(s as NSString).substringWithRange(NSMakeRange(4, 1)) println(ns1)//67890 println(ns2)//1234 println(ns3)//5
2.直接调用String
的对应方法(推荐使用该方法),由于String
对应的方法参数是String.Index
类型而非Int
类型,所以我们首先要创建String.Index
类型参数值,代码如下:
var s="1234567890" let index = advance(s.startIndex, 5) let index2 = advance(s.endIndex, -6); var range = Range<String.Index>(start: index2,end: index) var s1:String=s.substringFromIndex(index) var s2:String=s.substringToIndex(index2) var s3=s.substringWithRange(range) println(s1)//67890 println(s2)//1234 println(s3)//5
通过String
定义可以看出属性Index
是个结构体,具体代码如下:
extension String : CollectionType {
struct Index : BidirectionalIndexType, Comparable, Reflectable {
func successor() -> String.Index
func predecessor() -> String.Index
func getMirror() -> MirrorType
}
var startIndex: String.Index { get }
var endIndex: String.Index { get }
subscript (i: String.Index) -> Character { get }
func generate() -> IndexingGenerator<String>
}