原创blog,转载请注明出处
blog.csdn.net/hello_hwc
欢迎关注我的iOS SDK详解专栏,这里有很多基础的文章
http://blog.csdn.net/column/details/huangwenchen-ios-sdk.html
前言:NSScanner是分析String,把String转为substring和数字的很好的工具。它使用一个NSString初始化,使用的时候通常从开头处扫描直到结尾。
本文会先举出两个例子,然后详细的讲解NSScanner的方法。源码是Swift版本,可以直接复制到Playground里执行。
分析固定格式的String
//格式是这样的 - CSDN://[User:名字]~[URL:链接]~[ID:标识符]
var str = "CSDN://[User:WecnhenHuang]~[URL:blog.csdn.net]~[ID:123456]"
var scanner = NSScanner(string: str)
scanner.scanString("CSDN://[User:", intoString: nil)
var name:NSString? = nil
var url:NSString? = nil
var id:NSString? = nil
scanner.scanUpToString("]~[URL:", intoString: &name)
scanner.scanString("]~[", intoString: nil)
scanner.scanUpToString("]~[", intoString: &url)
scanner.scanString("]~[ID:", intoString: nil)
scanner.scanUpToString("]", intoString: &id)
分析过后,
分析十六进制字符串
ar str = "0x11ff"
var scanner = NSScanner(string: str)
scanner.scanLocation = 2
var a:UInt32 = 0
scanner.scanHexInt(&a)
结果
a//4607
caseSensitive // 忽略大小写
charactersToBeSkipped // 忽略某些字符集
locale // 地区
- scanCharactersFromSet:intoString: // 把charSet中的扫描到string 中
- scanUpToCharactersFromSet:intoString://直到扫描到chartset,把扫描到的存储到String中
- scanDecimal: // 扫描十进制
- scanHexInt:// 扫描十六进制到Int里
原文地址:http://blog.csdn.net/hello_hwc/article/details/46417455