String 是一个有序的字符集合,例如 "hello, world", "albatross"。Swift 字符串通过 String 类型来表示,也可以表示为 Character 类型值的集合。

Swift 的 String 和 Character 类型提供了一个快速的,兼容 Unicode
的方式来处理代码中的文本信息。创建和操作字符串的语法与
C的操作方式相似,轻量并且易读。字符串连接操作只需要简单地通过 + 号将两个字符串相连即可。与 Swift
中其他值一样,能否更改字符串的值,取决于其被定义为常量还是变量。
尽管语法简易,但 String 类型是一种快速、现代化的字符串实现。每一个字符串都是由独立编码的 Unicode 字符组成,并提供了用于访问这些字符在不同的Unicode表示的支持。

String 也可以用于在常量、变量、字面量和表达式中进行字符串插值,这使得创建用于展示、存储和打印的字符串变得轻松自如。

注意:Swift 的 String 类型与 Foundation NSString 类进行了无缝桥接。如果您利用 Cocoa 或 Cocoa
Touch 中的 Foundation 框架进行工作,整个 NSString API 都可以调用您创建的任意 String
类型的值,您额外还可以在任意 API 中使用本章介绍的 String 特性。您也可以在任意要求传入NSString 实例作为参数的 API
中使用 String 类型的值进行替换。

更多关于在 Foundation 和 Cocoa 中使用 String 的信息请查看 Using Swift with Cocoa and Objective-C

字符串字面量

您可以在您的代码中包含一段预定义的字符串值作为字符串字面量。字符串字面量是由双引号包裹着的具有固定顺序的文本字符集。

字符串字面量可以用于为常量和变量提供初始值。

  1. let someString = "Some string literal value"

注意:someString 变量通过字符串字面量进行初始化,Swift 因此推断其为 String 类型。

字符串字面量可以包含以下特殊字符:

  • 转移特殊字符 \0 (空字符)、\\(反斜线)、\t (水平制表符)、\n (换行符)、\r (回车符)、\" (双引号)、\' (单引号)。
  • 单字节 Unicode 标量,写成 \xnn,其中 nn 为两位十六进制数。
  • 双字节 Unicode 标量,写成 \unnnn,其中 nnnn 为四位十六进制数。
  • 四字节 Unicode 标量,写成 \Unnnnnnnn,其中 nnnnnnnn 为八位十六进制数。

下面的代码为各种特殊字符的使用示例。

wiseWords 常量包含了两个转移特殊字符 (双括号);dollarSign、blackHeart 和 sparklingHeart 常量演示了三种不同格式的 Unicode 标量:

  1. let wiseWords = "\"我是要成为海贼王的男人\" - 路飞"
  2. // "我是要成为海贼王的男人" - 路飞
  3. let dollarSign = "\x24" // $, Unicode 标量 U+0024
  4. let blackHeart = "\u2665" // ♥, Unicode 标量 U+2665
  5. let sparklingHeart = "\U0001F496" //

    Swift Strings and Characters的更多相关文章

    1. Welcome-to-Swift-03字符串和字符(Strings and Characters)

      String是例如“hello, world“”,“海贼王” 这样的有序的Character(字符)类型的值的集合,通过String类型来表示. Swift 的String和Character类型提供 ...

    2. Swift中文教程 第2章 基本运算符 (20140604更新)

      今天我在下午又进行了新的翻译,之前我翻译的大家有没有看啊,感觉如何,我昨天下午不小心点了什么原先的文章都没了,大家的评论也没了,现在我也找不回来了,希望大家能继续给我新的评论和支持点个推荐,毕竟现在学 ...

    3. swift中文文档翻译之--字符串和字符

      字符串和字符 A string is an ordered collection of characters, such as "hello, world" or "al ...

    4. Swift 版本历史记录(关注)

      http://numbbbbb.gitbooks.io/-the-swift-programming-language-/content/chapter1/03_revision_history.ht ...

    5. Swift -- 中文版两大官方文档汇总

      Swift官方文档由CocoaChina翻译小组精心翻译制作而成,目前两本文档中文版已全部完成!在此,我们对所有参与的译者.组织人员以及工作人员表示衷心的感谢!本文为您提供两本文档的在线阅读以及下载! ...

    6. 【读书笔记】The Swift Programming Language (Swift 4.0.3)

      素材:Language Guide 初次接触 Swift,建议先看下 A Swift Tour,否则思维转换会很费力,容易卡死或钻牛角尖. 同样是每一章只总结3个自己认为最重要的点.这样挺好!强迫你去 ...

    7. swift网址

      http://www.cocoachina.com/industry/20140613/8818.html Swift -- 中文版两大官方文档汇总发布于:2014-06-13 15:34阅读数:22 ...

    8. 【译】Swift 字符串速查表

      [译]Swift 字符串速查表 2015-12-18 10:32 编辑: suiling 分类:Swift 来源:CocoaChina翻译活动 10 5585 Swift字符串 招聘信息: iOS高级 ...

    9. Swift中文教程(二)基本运算符

      1.基本运算符 运算符是一种特定的符号或表达式,用来检验.改动或合并变量.比如,用求和运算符+能够对两个数字进行求和(如let i = 1 + 2):略微复杂一点的样例有逻辑与操作符&& ...

    随机推荐

    1. [转]XNOR-Net ImageNet Classification Using Binary Convolutional Neural Networks

      感谢: XNOR-Net ImageNet Classification Using Binary Convolutional Neural Networks XNOR-Net ImageNet Cl ...

    2. go - 复合类型 array, slice, map

      Go 语言支持复合类型: 数组:array 切片:slice 指针:pointer 字典:map 通道:chan 结构体:struct 接口:interface 1. array   同一类型数据的集 ...

    3. Linux 终端訪问 FTP 及 上传下载 文件

      今天同事问我一个问题,在Linux 下訪问FTP,并将文件上传上去. 我之前一直是用WinSCP工具的. 先将文件从linux copy到windows下,然后在传到ftp上. google 一下. ...

    4. VC调试笔记

      1.windows-32调试: ①使用map文件根据崩溃地址寻找对应的源代码文件和行号 勾选project->settings->link->General mapfile,对应的P ...

    5. [core java学习笔记][第四章对象与类]

      4.3 用户自定义类 4.3.1 类数组的声明 需要两次new Employee[]=staff=new Employedd[3]; staff[0]=new Employedd(参数列表); sta ...

    6. 两个listbox 无刷新互动

      页面代码: <table border="0" cellpadding="0" cellspacing="0" style=" ...

    7. Win7刷新环境变量

      在“我的电脑”->“属性”->“高级”->“环境变量”中增加或修改环境变量后,需重启系统才能使之生效.有没有什么方法可让它即时生效呢? 下面介绍一种方法: 以修改环境变量“PATH” ...

    8. iOS开发~interface Builder(简称 IB) 界面构建器

      1.interface Builder 设置界面 1.1 是什么? 一个可视化的界面编辑工具软件,在xcode4之后整合到了xcode中 1.2 作用? 通过可视化的界面设置,能够少写或不写代码而完成 ...

    9. 新浪授权认证(不用SDK)

      微博开放平台:http://open.weibo.com/ 微博开放接口的调用,如发微博.关注等,都是需要获取用户身份认证的.目前微博开放平台用户身份鉴权主要采用的是OAuth2.0.另外,为了方便开 ...

    10. 漂亮回答面试官struts2的原理

      众所周知,Struts2是个非常优秀的开源框架,我们能用Struts2框架进行开发,同时能快速搭建好一个Struts2框架,但我们是否能把Struts2框架的工作原理用语言表达清楚,你表达的原理不需要 ...