Swift学习09:字符串创建和使用

张建 lol

初始化空串

  • 字面量

  • 初始化器语法

  • isEmpty 检查是否为空串

1
2
3
4
5
6
var emptyString = ""
var anotherEmptyString = String()

if emptyString.isEmpty {
print("Nothing to see here")
}

字面量

  • 字符串字面量是被双引号 “” 包裹的固定顺序文本字符

  • Swift 会为 str 常量推断类型为 String

1
let str = "some string"

多行字面量

  • 多行字符串字面量是用三个双引号引起来的一系列字符

  • 多行字符串字面量把所有行包括在引号内,开始和结束默认不会有换行符

  • 如果为了书写美观而不换行在后面加 \

1
2
3
4
5
6
7
8
let someStr = """
1\
2\
3
4
5
"""
print(someStr)

  • 要让多行字符串字面量起始或结束于换行,就在第一或最后一行写一个空行

  • 多行字符串可以 缩进 以匹配周围的代码。双引号(”””)前的空格会告诉Swift其他行前应该有多少空白是需要忽略的

  • 如果你在某行的空格超过了结束的双引号(”””),那么这些空格会被包含

1
2
3
4
5
6
7
8
    let someStr = """
1
2
3
4
5
"""
print(someStr)

字符串里的特殊字符

  • 转义特殊字符 \o(空字符),\(反斜杠),\t(水平制表符),\n(换行符),\r(回车符),\”(双引号)以及 '(单引号)

  • 任意的 Unicode 标量,写作 \u{}n,里边的 n 是一个 1-8 位的16进制数字,其值是合法 Unicode

1
let str = "\u{24}"
  • 可以在多行字符串字面量中包含双引号(”)而不需要转义。要在多行字符串中包含文本 “”””””,转义至少一个双引号

扩展字符串分隔符(Raw String)

  • 在字符串字面量中放置扩展分隔符来使 包含特殊字符的字符串 不让他们真的生效

  • 把字符串放在双引号 (“) 内并由 (#) 包裹

1
2
let str = #"1\n2\n3\n"#
print(str)

  • 如果字符串里面有 "# 则首尾需要两个 ##
1
2
let str = ##"1\"#n2\#n3\#n"##
print(str)

  • 如果你需要字符串中某个特殊符号的效果,使用匹配你包裹的 # 号数量的 # 号,并在前面写转义符号 \
1
2
let str = #"1\#n2\#n3\#n"#
print(str)

  • Post title:Swift学习09:字符串创建和使用
  • Post author:张建
  • Create time:2023-02-22 02:58:24
  • Post link:https://redefine.ohevan.com/2023/02/22/Swift课程/Swift学习09:字符串创建和使用/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.