Swift中的字符串按范围截取
1.先谈下OC中的字符串截取
相信OC中的字符串截取很多人都已经很熟悉了
我觉得以下情况很常见,在服务器返回的数据中,想要截取一串自己想要的数据
例如以下的URL字符串中,我想截取请求参数中的username和pwd
```objc
NSString *myString = @"http://www.mynetworking.com?username=zhangsan&pwd=11520&page=xxx";
NSInteger startLocation = [myString rangeOfString:@"?"].location + 1;
NSInteger length = [myString rangeOfString:@"&" options:NSBackwardsSearch].location - startLocation;
myString = [myString substringWithRange:NSMakeRange(startLocation, length)];
NSLog(@"%@",myString);
```
以上的输出结果就为"username=zhangsan&pwd=11520"
2.在来看看Swift中截取是怎么个方法
2.1 首先就是把Swift中的字符串转化为OC字符串再用OC的方法操作,这里就不详述了,这里看看Swift中的Range
2.2 Swift中的利用Range截取上述
```
let myString = "http://www.mynetworking.com?username=zhangsan&pwd=11520&page=xxx";
let startLocation = myString.rangeOfString("?")!.endIndex
let endLocation = myString.rangeOfString("&", options: NSStringCompareOptions.BackwardsSearch, range: nil, locale: nil)?.startIndex
let range:Range = Range.init(start: startLocation, end: endLocation!)
let subString = myString.substringWithRange(range)
print(subString)
```
输入结果和上面一致,这里主要有2个属性,endIndex startIndex,虽然使用起来没有OC那么直观,但是个人认为还是非常优雅的
作者:胥鸿儒