Scanner(OC中是NSScanner)继承自NSObject,遵守NSCopying协议。是一个用于扫描字符串的抽象类。Scanner是一个类簇,它管理着很多可以从NSString中扫描出数字值或字符值的私有类。通常拿Scanner对字符串进行比较简单的扫描来获取指定内容(数字值或字符值)。
扫描规则
**scanner的每个扫描方法都返回是否成功,如果返回成功则scanLocation会往前移动相对应的位置(就是扫出来的内容的长度),如果返回NO则scanLocation不会变化**。
案例
判断给定扫描的字符串的int值是不是整型
判断给定扫描的字符串的int值是不是整型,可以理解成Int(a)的结果是不是整形, 比如:111返回111, 111e返回111, 1e11返回1
1 |
|
其他几个类似的Api意思差不多,例如 scanDouble, scanHexFloat等
给定一个字符串,从扫描的字符串中找出相同的
1 |
|
给定一个集合,从扫描的字符串中找出相同的
1 |
|
扫描到给定的字符串后,将从一开始扫描位开始的地方开始截取,并且去掉指定的string(第一个参数);或者是到扫描结束,将字符串末尾往前直到碰到–为止的字符串截取下来。
1 |
|
注意事项:要找的字符串在被找的字符串的第一个的时候,会返回false,返回false之后根据扫描规则scanLocation是不会自动加1,所以为了扫描的准确性,我们可以在被扫描字符串的开始添加一个在要找的字符中没有的特殊字符, 让其第一个永远找不到即可
扫描到给定的字符串后,将从一开始扫描位开始的地方开始截取,并且去掉指定的string(第一个参数);或者是到扫描结束,将字符串末尾往前直到碰到–为止的字符串截取下来。(与scanUpTo(_ string: String, into result: AutoreleasingUnsafeMutablePointer<NSString?>?) -> Bool 一样)
1 |
|