本系列第三篇,String相关的类型转换。其他的几篇传送门(GitHub打不开链接的同学请自行把地址github改成gitcafe,或者直接去归档里找:-P):

虽然Swift是强类型语言,但简单的String类型转换其实还是比较方便的,最暴力的就是强制类型转换,百试百灵:

func toString<T>(a: T) -> String{
// Way one, format
//return "\(a)"
// Way two, new string
return String(a)
}
toString(123)
toString(0.007)
toString([4, 8, 32, 5 ])
toString("test".startIndex)

同样照葫芦画瓢也能转回来:

Int("123")
Float("3.1")

但这个太简单、太有局限性了!我最喜欢的是下面这个,利用了New的时候format方法,简直就是 sprintf() 的替代品!

// Way 1, 格式化转String
String(format:"%i, 0x%x, 0o%o, %.2f", 31, 31, 31, 3.1)
// Way 2
String().stringByAppendingFormat("%x",31)
String().stringByAppendingFormat("%o",31)

同样的,有了sprintf(),怎么能没有 sscanf() ??

//十六进制String转整数
var res:UInt32 = 0
NSScanner.localizedScannerWithString(str).scanHexInt(&res)

当然,这个用起来就要麻烦许多,类似的一堆API:

    NSScanner.localizedScannerWithString(str).scanInt(&res)
NSScanner.localizedScannerWithString(str).scanFloat(&res)
NSScanner.localizedScannerWithString(str).scanDouble(&res)
NSScanner.localizedScannerWithString(str).scanInteger(&res)
NSScanner.localizedScannerWithString(str).scanHexFloat(&res)

最后,虽然ASCII码现在不大常用了,但我这种老人家还是很喜欢……写个ASCII码的转换函数吧:

/**
ASCII value to char
*/
func ASCII ( n : Int) -> String? {
guard (n >= 0 && n < 255 ) else {
return nil
}
return String(format:"%c", n)
} /**
ASCII char to int value
*/
func ASCII (c : String) -> Int8?{
let str:NSString = c
let n = str.UTF8String[0]
guard n>=0 else {
return nil
}
return n
} ASCII(70)
ASCII("B")

Swift2.0 中的String(三):类型转换的更多相关文章

  1. Swift2.0 中的String(二):基本操作

    Swift中的字符串,第二篇,基本操作.其他的几篇传送门(GitHub打不开链接的同学请自行把地址github改成gitcafe,或者直接去归档里找:-P): Swift2.0 中的String(一) ...

  2. Swift2.0 中的String(一):常用属性

    字符串算是平常用的比较多.花样也比较多的一个类型,昨天有空把相关的一些常用操作都写了一遍,总结出来.其实iOS里面的字符串更复杂,还有NSString系列等等,那些API太多将来需要用的时候再慢慢学. ...

  3. List转String数组 collection.toArray(new String[0])中new String[0]的语法解释

    Collection的公有方法中,toArray()是比较重要的一个. 但是使用无参数的toArray()有一个缺点,就是转换后的数组类型是Object[]. 虽然Object数组也不是不能用,但当你 ...

  4. collection.toArray(new String[0])中new String[0]的作用

    new string[0]的作用 比如:String[] result = set.toArray(new String[0]); Collection的公有方法中,toArray()是比较重要的一个 ...

  5. Swift2.0语言教程之Swift2.0语言中的标准函数

    Swift2.0语言教程之Swift2.0语言中的标准函数 Swift2.0中的标准函数 函数除了可以根据参数列表的有无分为无参函数和有参函数,还可以从定义角度分为用户自定义函数和标准函数两种.以上的 ...

  6. (IOS)Swift2.0 Radio 程序分析

    本文主要分享下楼主在学习Swift编程过程中,对GitHub上的一个开源项目Swift Radio的研究心得. 项目地址:https://github.com/swiftcodex/Swift-Rad ...

  7. [Swift2.0系列]Defer/Guard 基础语法

    1.Defer Swift2.0中加入了defer新语法声明.defer译为延缓.推迟之意.那么在Swift2.0中它将被应用于什么位置呢?比如,读取某目录下的文件内容并处理数据,你需要首先定位到文件 ...

  8. Swift2.0语言教程之函数的返回值与函数类型

    Swift2.0语言教程之函数的返回值与函数类型 Swift2.0中函数的返回值 根据是否具有返回值,函数可以分为无返回值函数和有返回值函数.以下将会对这两种函数类型进行讲解. Swift2.0中具有 ...

  9. Swift2.0 UITextView 和 UITextFile 的使用

    在Swift2.0中,UITextFile 和 UITextView 的使用总体上和在OC中是一样的,今天只是给大家一段代码,然后说UITextView里面的光标位置的问题.先看他们使用的简单的代码 ...

随机推荐

  1. 黑马程序员——经典C语言程序设计100例

    1.数字排列 2.奖金分配问题 3.已知条件求解整数 4.输入日期判断第几天 5.输入整数进行排序 6.用*号显示字母C的图案 7.显示特殊图案 8.打印九九口诀 9.输出国际象棋棋盘 10.打印楼梯 ...

  2. scala: How to write a simple HTTP GET request client in Scala (with a timeout)

    Scala CookBook: http://scalacookbook.com/ @throws(classOf[java.io.IOException]) @throws(classOf[java ...

  3. effective c++:virtual函数在构造函数和析构函数中的注意事项

    如不使用自动生成函数要明确拒绝 对于一个类,如果你没有声明,c++会自动生成一个构造函数,一个析构函数,一个copy构造函数和一个copy assignment操作符. class Empty { p ...

  4. 企业部署Linux应用将拥有更低的整体拥有成本

    企业部署Linux应用将拥有更低的整体拥有成本     使用Linux能为企业的IT解决方案降低TCO(整体拥有成本Total Cost of The Ownership)吗?在面临这个问题时,很多企 ...

  5. Supports BorlandIDEServices

    Delphi: procedure SetKeystrokeDebugging(Debugging: Boolean); var Dialog: IOTAKeyboardDiagnostics beg ...

  6. Spark生态系统BDAS

    目前,Spark已经发展成为包含众多子项目的大数据计算平台. 伯克利将Spark的整个生态系统称为伯克利数据分析栈(BDAS). 其核心框架是Spark,同时BDAS涵盖支持结构化数据SQL查询与分析 ...

  7. poj 3020 Antenna Placement(最小路径覆盖 + 构图)

    http://poj.org/problem?id=3020 Antenna Placement Time Limit: 1000MS   Memory Limit: 65536K Total Sub ...

  8. apache配置虚拟主机后,启动速度慢

    apache配置虚拟主机后,启动速度慢且提示“the requested operation has failed” 可以通过在cmd下启动,来查找问题(命令中的“apache2.2”,是服务名,根据 ...

  9. 表格对象QTableWidget相关常见方法

    QWidget bool close (self)QRect geometry (self)hide (self)int height (self)setStatusTip (self, QStrin ...

  10. UIView的autoresizingMask属性

    今天做相册列表的时候,发现有些 UITableViewController 属性不好记忆,然后就查找了一些资料.做一下备份. 在 UIView 中有一个autoresizingMask的属性,它对应的 ...