💻
ExistOrLive' Gitbook
  • README
  • ReadMe
  • 开发语言学习
    • Python
      • 0.概述
      • 1.基本数据类型
      • 2.变量
      • 3.函数
      • 4.运算符
      • 5.字符串
      • 6.列表
      • 7.元组
      • 8.集合
      • 9.字典
      • 10.流程控制
      • 12.函数
      • 13.模块
      • 14.输入输出格式化
      • 15.面向对象
    • Swift
      • 1.基础部分
        • 常量和变量以及基本类型_1
        • 常量和变量以及基本类型_2
      • 2.基本运算符
        • 基本运算符
      • 3.字符串和字符
        • 字符串
        • 字符串操作
      • 4.集合类型
        • 概述
        • Array
        • Set
        • Dictionary
      • 6.函数
        • 函数
        • 函数返回值
        • 函数类型
      • 7.闭包
        • 闭包
        • 闭包表达式
        • 尾随闭包
        • 捕获变量或常量
        • 闭包是引用类型
        • 逃逸闭包
        • 自动闭包
      • 8.枚举
        • 枚举
        • 枚举与switch语句
      • 9.类和结构体
        • 类和结构体
        • 属性
          • 属性
          • 属性观察器
          • 属性包装器
          • 全局变量和局部变量
          • 类属性
        • 方法
    • Shell
      • Shell变量和基本类型
      • Shell函数
      • Shell基本运算符
      • Shell脚本的参数
      • Shell流程控制
      • Shell输入输出
      • Shell文件包含
  • iOS
    • UI
      • UIKit
        • UIView
          • UIView
          • drawRect
        • UITableView
          • UITableView
          • UITableView的加载过程
  • 学习开发工具
    • 静态分析
      • OCLint
      • infer
      • SwiftLint
    • iOS构建工具
      • fastlane
        • fastlane
        • fastlane的安装
        • fastlane一键打包
        • fastlane证书管理
    • Cocoapods
      • 安装pod库-podfile
      • 创建pod库-podspec
  • 开源库
    • Tool
      • Swiftlint源码学习
      • 利用Swiftlint自定义规则实现自动化code review
由 GitBook 提供支持
在本页
  • 1. 字符串字面值
  • 2.字符串字面量的特殊字符
  • 3. 多行字符串
  • 4. 扩展字符串分隔符
  • 6. 初始化空的字符串
  • 7. 字符串是值类型
  • 8. 字符类型

这有帮助吗?

在GitHub上编辑
  1. 开发语言学习
  2. Swift
  3. 3.字符串和字符

字符串

Swift的String和Character类型提供了一种快速且兼容Unicode的方式来处理代码中的文本内容。

Swift 的 String 类型与 Foundation NSString 类进行了无缝桥接。Foundation 还对 String 进行扩展使其可以访问 NSString 类型中定义的方法。这意味着调用那些 NSString 的方法,你无需进行任何类型转换。

1. 字符串字面值

let someString = "Hello World"

2.字符串字面量的特殊字符

  • 转义字符

       \0(空字符)、\\(反斜线)、\t(水平制表符)、\n(换行符)、\r(回车符)、\"(双引号)、\'(单引号)
  • Unicode 标量

      写成 \u{n}(u 为小写),其中 n 为任意一到八位十六进制数且可用的 Unicode 位码。
let dollarSign = "\u{24}"             // $,Unicode 标量 U+0024
let blackHeart = "\u{2665}"           // ♥,Unicode 标量 U+2665
let sparklingHeart = "\u{1F496}"      // 💖,Unicode 标量 U+1F496

3. 多行字符串

Swift可以使用“”“包含多行字符串,直接回车表示换行,不用表示换行,在多行字符串中可以直接使用"

let str = """
      hdakshdajshdkajs\n
\u{1234}
            dasdjaskjdklasjdkals
   dsahjdkhasjkdhaskj
"""
/* 
  str值为:

      hdakshdajshdkajs

ሴ
            dasdjaskjdklasjdkals
   dsahjdkhasjkdhaskj
*/

4. 扩展字符串分隔符

将字符串放在引号"中并用数字符号#括起来。字符串中的特殊字符将会被直接包含而非转义后的效果。

let str = #"""
      hdakshdajshdkajs\n
\u{1234}
            dasdjaskjdklasjdkals
   dsahjdkhasjkdhaskj
"""#

/**

str值为:

      hdakshdajshdkajs\n
\u{1234}
            dasdjaskjdklasjdkals
   dsahjdkhasjkdhaskj

**/


let str2 = #"""
Here are three more double quotes: """
"""#

/**

str2值为:

Here are three more double quotes: """

**/

6. 初始化空的字符串

var str = ""      // 可变字符串

let str1 = String()   // 常量字符串

7. 字符串是值类型

在 Swift 中 String 类型是值类型。如果你创建了一个新的字符串,那么当其进行常量、变量赋值操作,或在函数/方法中传递时,会进行值拷贝。在前述任一情况下,都会对已有字符串值创建新副本,并对该新副本而非原始字符串进行传递或赋值操作。

在实际编译时,Swift 编译器会优化字符串的使用,使实际的复制只发生在绝对必要的情况下,这意味着你将字符串作为值类型的同时可以获得极高的性能。

8. 字符类型

let c : Character = "c"

let cArray : [Character] = ["c","a","t"]

let catStr = String(cArray)

for c in catStr {
    print(c)
}
上一页3.字符串和字符下一页字符串操作

最后更新于3年前

这有帮助吗?