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. java与.net比较学习系列(4) 运算符和表达式

      上一篇总结了java的数据类型,得到了冰麟轻武等兄弟的支持,他们提出并补充了非常好的建议,在这里向他们表示感谢.在后面的文章中,我会尽力写得更准确和更完善的,加油! 另外,因为C#是在java之后,也 ...

    2. markdown 书写代码

      近期基于github + hexo 搭建了自己的博客.開始用markdown写博客,推荐 mac 平台用 mou 这个软件或者 vim. 介绍下markdown语法插入代码的规则: 有一种方法是全部代 ...

    3. HDU 1863:畅通project(带权值的并查集)

      畅通project Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

    4. HTTP协议2之基本认证--转

      http协议是无状态的, 浏览器和web服务器之间可以通过cookie来身份识别. 桌面应用程序(比如新浪桌面客户端)跟Web服务器之间是如何身份识别呢? 什么是HTTP基本认证 桌面应用程序也通过H ...

    5. iOS 发布证书错误 Your build settings specify a provisioning profile with the UUID, no provisioning profile was found

      解决办法 1.找到项目中的**.xcodeproj文件,点击右键,show package contents(打开包内容). 2.打开后找到project.pbxproj文件,用文本编辑器打开.其实就 ...

    6. Code Review中应该关注的点

      Magic number/string If statement, you should always use single line or brackets Provide default valu ...

    7. C#避免过长的IF和Switch分支的方法

      C#避免过长的IF和Switch分支的方法 1.最蠢形态 //很丑有没有! //这个分支要是一两个还是可以接受的 class Program { static void Main(string[] a ...

    8. Web 1三级联动 下拉框 2添加修改删除 弹框

      Web  三级联动 下拉框 using System; using System.Collections.Generic; using System.Linq; using System.Web; u ...

    9. zeromq源码分析笔记之准备(0)

      zeromq这个库主要用于进程通信,包括本地进程.网络通信,涉及到一些基础知识,主要包括管道通信,socket编程的内容,反应器模式(使用IO多路复用实现),无锁队列这几块比较重要的部分,下面的几个链 ...

    10. apche commons项目简介

      1.apche commons项目封装了日常开发中经常使用的功能,如io, String等. http://commons.apache.org/ Apache Commons项目的由三部分组成: T ...