字符串算是平常用的比较多、花样也比较多的一个类型,昨天有空把相关的一些常用操作都写了一遍,总结出来。其实iOS里面的字符串更复杂,还有NSString系列等等,那些API太多将来需要用的时候再慢慢学。这个系列目前写了三篇,这篇是第一部分,String的一些常用属性。其他的几篇传送门(GitHub打不开链接的同学请自行把地址github改成gitcafe,或者直接去归档里找:-P):

  • Swift2.0 中的String(一):常用属性
  • Swift2.0 中的String(二):基本操作
  • Swift2.0 中的String(三):类型转换
  • 编码转换(TBD)
    我的练习源代码可以在 这里 看到

判断是否为空

str.isEmpty

获取字符数组

Swfit里面的String很有意思,它并不是由很多个Character组成的,而是在其上面又封装了一些东西。另外因为要兼容不同的编码,每个组成字符所占的内存也不一样(例如中文和英文的区别),所以它的下标并不是一个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)

转载于:https://www.cnblogs.com/Free-Thinker/p/6010838.html

Swift2.0 中的String(一):常用属性相关推荐

  1. android linearlayout属性大全,Android中LinearLayout布局的常用属性总结读书笔记

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 原CSDN博客已弃用,文章会逐渐迁移过来. 应朋友们反馈的Android基础薄弱的问题,决定出一套Android基础教程 ...

  2. css规则中区块block,css常用属性总结:背景background下篇

    前言:这段时间天天加班到10:30之后,简直是x了. 在上一篇文章中,分别解析了background各个属性的用法和注意细节.如果我们在项目上使用背景效果,如果使用下面的写法,你可能抓狂. body{ ...

  3. day13_下 Class中三大护法 及常用属性 单例模式(扩展)

    思维导图 四.实例方法.类方法和静态方法! 实例方法 : 第一个参数必须是实例对象,该参数一般约定为"self",通过他来传递实例的属性和方法(也可以传递类的属性和方法). 调用 ...

  4. c语言string 用法,C++中的String的常用函数用法总结

    一. string的构造函数的形式: string str:生成空字符串 string s(str):生成字符串为str的复制品 string s(str, strbegin,strlen):将字符串 ...

  5. 我们为什么推荐在Json中使用string表示Number属性值

    在这篇简短的文章中,我将解释在使用JSON传输数据时,为什么浮点数或大十进制值应表示为字符串 . long类型引发的诡异情况 长话短说,同事在利用swagger对接后端API时,诡异的发现swagge ...

  6. vue2.0中的watch和计算属性computed

    watch和computed均可以监控程序员想要监控的对象,当这些对象发生改变之后,可以触发回调函数做一些逻辑处理 watch监控自身属性变化 <!DOCTYPE html> <ht ...

  7. HTML中照片的各种常用属性

    先上代码 ​ <!DOCTYPE html><html><head><meta charset="UTF-8"><title& ...

  8. C++中的String的常用函数用法总结

    一. string的构造函数的形式: string str:生成空字符串string s(str):生成字符串为str的复制品string s(str, strbegin,strlen):将字符串st ...

  9. vfp 8.0中image控件的属性:RotateFlip

    该属性可使该IMAGE中的图发生旋转等效果.如果与TIME控件配合,可以做出多种自己想要的效果: 比如:在TIME的TIMER事件中: (I在FORM的INIT事件中定义成全局变量,且初值为0) I= ...

最新文章

  1. 接口测试用例设计思路_用了Swagger2后,接口设计文档,测试用例都不用自己写了,爽...
  2. R操作MySQL数据库创建表、删除表、增删改查(CRUD)
  3. 中國批准英特爾在東北投建晶片廠
  4. c语言或者cpp中位运算的技巧
  5. [转载]我的博后申请经历从陶瓷到Offer过程
  6. RxSwift之深入解析如何创建观察者Observer
  7. 程序员界年度人口普查:6成以上开发者日工作超9小时,且从不运动
  8. TS中的unknown类型
  9. 进度条上的小圆点怎么做_Android自定义带圆点的半圆形进度条
  10. PowerDesigner通过jdbc连接MySQL实现逆向工程步骤
  11. 既然有http 请求,为什么还要用rpc调用?
  12. android tif格式文件,后缀tif文件怎么打开(tif图片查看器安卓版)
  13. 计算机如何驱动无线网络,详细教你电脑无线网卡驱动怎么安装
  14. js实现推迟时间半小时
  15. 把手机自带计算机软件,如何删除手机自带软件,小编告诉你手机自带软件如何删除...
  16. strong scaling and weak scaling
  17. IIC(I2C)通信协议详解
  18. 根据K线图与移动平均线的位置决定卖出点五绝招
  19. 量化投资 无套利 No-arbitrage
  20. AXI接口协议详解-AXI总线、接口、协议

热门文章

  1. ArchiCAD 23中文版
  2. SciTE 2.21 汉化版
  3. 11.23关于微信JSAPI缺少参数的问题解决
  4. 解题:洛谷2093 JZPFAR
  5. 使用 class-dump 扫描 app 关键字
  6. Javascript模块化编程
  7. Qt探索之路——获取QTextEdit文本内容
  8. A winner is a dreamer who never gives up
  9. http://jsbeautifier.org/
  10. 我用ASP.NET缓存之OutputCache