码迷,mamicode.com
首页 > 移动开发 > 详细

iOS SDK详解之NSScanner-分析String

时间:2015-06-08 23:28:46      阅读:669      评论:0      收藏:0      [点我收藏+]

标签:ios   string   扫描   nsscanner   

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

iOS SDK详解之NSScanner-分析String

标签:ios   string   扫描   nsscanner   

原文地址:http://blog.csdn.net/hello_hwc/article/details/46417455

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!