有人可以告诉我如何用“双引号”以下列方式打印。
“双引号”
答案 0 :(得分:168)
在双引号之前使用反斜杠,以便在String中插入:
let sentence = "They said \"It's okay\", didn't they?"
现在sentence
是:
他们说"没关系",他们没有?
它被称为"逃避"一个字符:你正在使用它的字面值,它不会被解释。
使用Swift 4,您也可以选择使用"""
分隔符作为文字文本,而不需要转义:
let sentence = """
They said "It's okay", didn't they?
Yes, "okay" is what they said.
"""
这给出了:
他们说"没关系",他们没有? 是的,"好的"就是他们说的。
使用Swift 5,您可以使用增强分隔符:
现在可以使用enhanced delimiters表示字符串文字。在开头引号之前带有一个或多个数字符号(#)的字符串文字处理反斜杠,并将字符双引号作为文字,除非它们后面跟着相同数量的数字符号。使用增强的分隔符可以避免使包含许多带有额外转义的双引号或反斜杠字符的字符串文字混乱。
您的字符串现在可以表示为:
let sentence = #"They said "It's okay", didn't they?"#
如果你想在你的字符串中添加变量,你还应该在反斜杠之后添加#
:
let sentence = #"My "homepage" is \#(url)"#
答案 1 :(得分:20)
完整性,来自Apple docs:
字符串文字可以包含以下特殊字符:
- 转义的特殊字符\ 0(空字符),\(反斜杠),\ t (水平标签),\ n(换行),\ r \ n(回车),\“(双 引用)和\'(单引号)
- 任意Unicode标量,写为 \ u {n},其中n是1-8位十六进制数,其值等于 有效的Unicode代码点
这意味着除了能够使用反斜杠转义字符外,您还可以使用unicode值。以下两个陈述是等效的:
void*
let myString = "I love \"unnecessary\" quotation marks"
let myString = "I love \u{22}unnecessary\u{22} quotation marks"
现在包含:
我喜欢“不必要的”引号
答案 2 :(得分:5)
根据您的需要,您可以使用以下 4种模式之一:以打印其中包含双引号的Swift String
。
字符串文字可以包含特殊字符,例如\"
:
let string = "A string with \"double quotes\" in it."
print(string) //prints: A string with "double quotes" in it.
字符串文字可以包含写为\u{n}
的Unicode标量值:
let string = "A string with \u{22}double quotes\u{22} in it."
print(string) //prints: A string with "double quotes" in it.
The Swift Programming Language / Strings and Characters指出:
由于多行字符串文字使用三个双引号而不是一个双引号,因此您可以在多行字符串文字内使用双引号(
"
),而不必对其进行转义。
let string = """
A string with "double quotes" in it.
"""
print(string) //prints: A string with "double quotes" in it.
The Swift Programming Language / Strings and Characters指出:
您可以在扩展定界符中放置字符串文字,以在字符串中包含特殊字符,而无需调用其效果。您将字符串放在引号(
"
)内,并用数字符号(#
)括起来。例如,打印字符串文字#"Line 1\nLine 2"#
会打印换行转义序列(\n
),而不是跨两行打印字符串。
let string = #"A string with "double quotes" in it."#
print(string) //prints: A string with "double quotes" in it.