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

字符串算是平常用的比较多、花样也比较多的一个类型,昨天有空把相关的一些常用操作都写了一遍,总结出来。其实iOS里面的字符串更复杂,还有NSString系列等等,那些API太多将来需要用的时候再慢慢学。
这个系列目前写了三篇,这篇是第一部分,String的一些常用属性。其他的几篇传送门:

判断是否为空

str.isEmpty

获取字符数组
Swfit里面的String很有意思,它并不是由很多个Character组成的,

你看到的是非授权版本!爬虫凶猛,请尊重知识产权!

转载请注明出处:http://conanwhf.github.io/2015/12/03/Swift_String_1/

访问原文「Swift2.0 中的String(一):常用属性」获取最佳阅读体验并参与讨论

而是在其上面又封装了一些东西。另外因为要兼容不同的编码,每个组成字符所占的内存也不一样(例如中文和英文的区别),所以它的下标并不是一个Int型,也不能通过下标来直接定位、获取字符。

Array(str.characters)

获取长度

str.characters.count

下标(Index)操作

str.startIndex  //起始下标
str.endIndex        //结束下标
var i      = str.startIndex.successor() //下标的前后移动
str.endIndex.predecessor()
str[i]  //通过Index能直接拿到字符
str.characters[i]   //第二种方法
i          = i.advancedBy(2)        //起始位之后3个字符,即第四个字符
i.distanceTo(str.endIndex)

大小写

str.uppercaseString
str.lowercaseString
str.capitalizedString

不同的编码输出
这里为了Playground可视结果方便,转化成了数组

Array(str.utf8.enumerate())
Array(str.utf16.enumerate())
Array(str.unicodeScalars.enumerate())
Array(str.nulTerminatedUTF8)