下面介紹2種swift的字符串截取方法,實際上用到了substringFromIndex
,substringToIndex
,substringWithRange
swift
1.將String
轉化爲NSString
再截取,代碼以下:code
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
類型參數值,代碼以下:ip
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> }