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. 常调用的Webservice接口 集合

      1. 查询手机:http://www.yodao.com/smartresult-xml/search.s?type=mobile&q=手机号码 2. 查询IP:http://www.yoda ...

    2. linux hash_map

      在linux下的hash_map hash_map本身以前本身不属于标准库,是后来引入的.有两种可能:一种可能它被放在了stdext名空间里,那么你就要使用using namespace stdext ...

    3. IOS上 关于状态栏的相关设置(UIStatusBar)

      知识普及 ios上状态栏 就是指的最上面的20像素高的部分 状态栏分前后两部分,要分清这两个概念,后面会用到: 前景部分:就是指的显示电池.时间等部分: 背景部分:就是显示黑色或者图片的背景部分: 如 ...

    4. HttpServletRequest对象请求转发和HttpServletResponse对象请求重定向之间的区别

      HttpServletRequest对象request代表浏览器请求对象,HttpServletResponse对象代表服务器响应对象,当用浏览器访问web服务器,发出请求时,Servlet调用ser ...

    5. html5前端开发笔记-个人中心

      简单的css自适应 PC端 *** 移动端 *** ) *** 一开始的想法就是模仿手机APP 的页面进行布局,首先得有个头部,然后是主题部分,然后加上2个按钮,分别是编辑和退出登录.先布出基本结构. ...

    6. Mysql 复制表结构 及其表的内容

      顺便转一下Mysql复制表结构.表数据的方法: 1.复制表结构及数据到新表CREATE TABLE 新表 SELECT * FROM 旧表 这种方法会将oldtable中所有的内容都拷贝过来,当然我们 ...

    7. MongoDB学习笔记06

      在shell中删除一个集合,执行db.test.drop()或者db.runCommand({"drop":"test"}),在MongoDB中命令其实是作为一 ...

    8. 无法安装或运行此应用程序。该应用程序要求首先在"全局程序集缓存(GAC)"中安装程序集

      在做winform程序发布时遇到了这个问题,在我的机子上是可以正常运行的,但到别人的机子上就出现了这个错误.为此问题头疼了一上午终于搞定! 遇到这个问题一定是配置环境的原因, 1.你可以在程序  发布 ...

    9. Java---文件夹及文件操作

      /** * 获取文件夹大小 * @param file File实例 * @return long */ public static long getFolderSize(java.io.File f ...

    10. nginx 搭建rtmp流媒体所用资源

      Linux: 1.nginx安装包,自行下载. 2.nginx_mod_h264_streaming-2.2.7下载 3.nginx-rtmp-module-master下载 Windows: ngi ...