Swift中的字符串按范围截取

2016-07-10  本文已影响1061人  落雪无痕_t

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那么直观,但是个人认为还是非常优雅的

作者:胥鸿儒 

上一篇下一篇

猜你喜欢

热点阅读