在 Swift 中绝大多数的情况下,推荐使用 String 类型

  • String 是一个结构体,性能更高

    • String 目前具有了绝大多数 NSString 的功能
    • String 支持直接遍历
  • NSString 是一个 OC 对象,性能略差
  • Swift 提供了 String 和 NSString 之间的无缝转换

字符串演练

  • 遍历字符串中的字符
for s in str.characters {print(s)
}
  • 字符串长度
// 返回以字节为单位的字符串长度,一个中文占 3 个字节
let len1 = str.lengthOfBytesUsingEncoding(NSUTF8StringEncoding)
// 返回实际字符的个数
let len2 = str.characters.count // 返回 utf8 编码长度 let len3 = str.utf8.count 
  • 字符串拼接

    • 直接在 "" 中使用 \(变量名) 的方式可以快速拼接字符串
let str1 = "Hello"
let str2 = "World"
let i = 32 str = "\(i) 个 " + str1 + " " + str2 

我和我的小伙伴再也不要考虑 stringWithFormat 了 :D

  • 可选项的拼接

    • 如果变量是可选项,拼接的结果中会有 Optional
    • 为了应对强行解包存在的风险,苹果提供了 ?? 操作符
    • ?? 操作符用于检测可选项是否为 nil
      • 如果不是 nil,使用当前值
      • 如果是 nil,使用后面的值替代
let str1 = "Hello"
let str2 = "World"
let i: Int? = 32 str = "\(i ?? 0) 个 " + str1 + " " + str2 
  • 格式化字符串

    • 在实际开发中,如果需要指定字符串格式,可以使用 String(format:...) 的方式
let h = 8
let m = 23
let s = 9 let timeString = String(format: "%02d:%02d:%02d", arguments: [h, m, s]) let timeStr = String(format: "%02d:%02d:%02d", h, m, s) 

String & Range 的结合

  • 在 Swift 中,String 和 Range连用时,语法结构比较复杂
  • 如果不习惯 Swift 的语法,可以将字符串转换成 NSString 再处理
let helloString = "我们一起飞"
(helloString as NSString).substringWithRange(NSMakeRange(2, 3)) 
  • 使用 Range 的写法
let startIndex = helloString.startIndex.advancedBy(0)
let endIndex = helloString.endIndex.advancedBy(-1)helloString.substringWithRange(startIndex..<endIndex)

转载于:https://www.cnblogs.com/skbyy/p/5882058.html

Swift之String的简单实用相关推荐

  1. html 可调节进度条控件,jQuery简单实用的轻量级进度条插件

    jQMeter是一款简单实用的轻量级进度条jQuery插件,它可以显示为水平或垂直进度条,进度条加载时带有动画特效,你只需要简单的传入一些参数到jQMeter对象的构造函数中就可以完成你想要的进度条效 ...

  2. python读取excel表格-python读写Excel表格的实例代码(简单实用)

    安装两个库:pip install xlrd.pip install xlwt 1.python读excel--xlrd 2.python写excel--xlwt 1.读excel数据,包括日期等数据 ...

  3. php注入类,简单实用的PHP防注入类实例

    这篇文章主要介绍了简单实用的PHP防注入类实例,以两个简单的防注入类为例介绍了PHP防注入的原理与技巧,对网站安全建设来说非常具有实用价值,需要的朋友可以参考下 本文实例讲述了简单实用的PHP防注入类 ...

  4. ajax 示例代码,Ajax的简单实用实例代码

    我将实现一个简单的Ajax页面无刷新进行用户验证案例: 效果如下图: 实现主要过程: 在UsersAction类中的checkUser方法中接收并验证前台的表单数据,针对不同情况,返回一个状态码cod ...

  5. php简单实用的操作文件工具类(创建、移动、复制、删除)

    php简单实用好用的文件及文件夹复制函数和工具类(创建.移动.复制.删除) function recurse_copy($src,$dst) {  // 原目录,复制到的目录 $dir = opend ...

  6. Java注解的基本概念和原理及其简单实用

      一.注解的基本概念和原理及其简单实用 注解(Annotation)提供了一种安全的类似注释的机制,为我们在代码中添加信息提供了一种形式化得方法,使我们可以在稍后某个时刻方便的使用这些数据(通过解析 ...

  7. 经验分享:10个简单实用的 jQuery 代码片段

    尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库.今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 您可能感兴趣的相 ...

  8. php ajax简单实例代码,Ajax的简单实用实例代码

    这篇文章主要介绍了Ajax的简单实用实例代码,对ajax感兴趣的朋友可以参考下Ajax的简单实用的方法 我将实现一个简单的Ajax页面无刷新进行用户验证案例: 效果如下图: 实现主要过程: 在User ...

  9. php注入类,简单实用的PHP防注入类实例_PHP

    本文实例讲述了简单实用的PHP防注入类.分享给大家供大家参考.具体如下: PHP防注入注意要过滤的信息基本是get,post,然后对于sql就是我们常用的查询,插入等等sql命令了,下面我给各位整理两 ...

最新文章

  1. Linuxamp;nbsp;shell中的竖线(|)——…
  2. 取MySQL最后几行数据
  3. mongodb更新某个字段_直播 | MongoDB开源数据库的云上之路
  4. php mysql $_php中mysql语句的基本写法
  5. 100+人的企业IP怎么进行安全配置 ?
  6. C++基础01-C++对c的增强
  7. MooTools教程(2):DOM选择器
  8. java将动态图转换成静态图_如何用最简单的方法把静态图变成动图?
  9. MODBUS通讯:libmodbus库使用方法
  10. 网页版微博HTML解析和提取,爬虫聚焦——以新浪微博为例
  11. 华师大的计算机专业属于提前批吗,华东师范大学提前批上海录取线确定
  12. C# 测试网络速度例子
  13. Fleck实现简单的Websocket
  14. AD域创建及加入域的办法
  15. layui table 获取单元格总是多一个
  16. 什么是基本的逻辑运算?
  17. 使用 arxiv-sanity 实时跟进自己研究领域的Paper
  18. 编译OpenCV4.4测试运行
  19. 奥运五环图形 -《跟小海龟学Python》案例代码
  20. 七大管理工具:SWOT、PDCA、6W2H、SMART、WBS、时间管理、二八原则!

热门文章

  1. linux glob函数详解
  2. VMware上的ubuntu14.04与win7共享文件夹
  3. Python 实现图片轮播及音乐循环播放
  4. SpringBoot中请求映射的原理(源码)
  5. STM32F4 HAL库开发 -- DMA
  6. 解决 Ubuntu 无法更新软件问题
  7. 【译】CREDITS: Peer-to-peer (P2P) network and its components
  8. 以太坊go-ethereum项目源码本地环境搭建
  9. 带你全面了解比特黄金(bitcoin gold)分叉
  10. 注入安卓进程,并hook java世界的方法