iOS SDK详解之NSScanner-分析String

原创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里


更多的文档
https://developer.apple.com/library/prerelease/ios/documentation/Cocoa/Reference/Foundation/Classes/NSScanner_Class/index.html

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。