「」内に二重引用符を印刷する方法は?


回答:


221

文字列に挿入する二重引用符の前にバックスラッシュを付けます。

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では、拡張区切り文字を使用できます。

文字列リテラルは、拡張デリミタを使用して表現できるようになりました。開始引用符の前に1つ以上のシャープ記号(#)が付いた文字列リテラルでは、バックスラッシュと二重引用符文字の後に同じ数のシャープ記号が続いていない限り、バックスラッシュと二重引用符はリテラルとして扱われます。強化された区切り文字を使用して、二重引用符やバックスラッシュ文字を多く含む文字列リテラルが余分なエスケープで乱雑にならないようにします。

文字列は次のように表すことができます。

let sentence = #"They said "It's okay", didn't they?"#

また、変数を文字列に追加する場合は#、バックスラッシュの後に追加する必要があります。

let sentence = #"My "homepage" is \#(url)"#

23

完全を期すために、アップルのドキュメントから:

文字列リテラルには、次の特殊文字を含めることができます。

  • エスケープされた特殊文字\ 0(ヌル文字)、\(バックスラッシュ)、\ t(水平タブ)、\ n(ラインフィード)、\ r(復帰)、\ "(二重引用符)および\ '(単一引用符)
  • \ u {n}として記述された任意のUnicodeスカラー。nは、有効なUnicodeコードポイントと等しい値を持つ1〜8桁の16進数です。

つまり、バックスラッシュで文字をエスケープできることを除いて、Unicode値を使用できます。次の2つのステートメントは同等です。

let myString = "I love \"unnecessary\" quotation marks"
let myString = "I love \u{22}unnecessary\u{22} quotation marks"

myString 含まれるようになります:

「不要な」引用符が大好き


8

必要に応じて、4つのパターンのいずれかを使用Stringして、二重引用符を含むSwiftを印刷できます。


1.エスケープされた二重引用符の使用

文字列リテラルには、次のような特殊文字を含めることができます\"

let string = "A string with \"double quotes\" in it."
print(string) //prints: A string with "double quotes" in it.

2. Unicodeスカラーの使用

文字列リテラルには、次のように記述されたUnicodeスカラー値を含めることができます\u{n}

let string = "A string with \u{22}double quotes\u{22} in it."
print(string) //prints: A string with "double quotes" in it.

3.複数行の文字列リテラルの使用(Swift 4が必要)

ザ・スウィフトは、言語/文字列と文字のプログラミング状態を:

複数行文字列リテラルは1つではなく3つの二重引用符を使用するため、"エスケープせずに複数行文字列リテラル内に二重引用符()を含めることができます。

let string = """
A string with "double quotes" in it.
"""
print(string) //prints: A string with "double quotes" in it.

4.生の文字列リテラルを使用する(Swift 5が必要)

ザ・スウィフトは、言語/文字列と文字のプログラミング状態を:

文字列リテラルを拡張区切り文字内に配置して、その効果を呼び出さずに文字列に特殊文字を含めることができます。文字列を引用符(")で囲み、シャープ記号()で囲み#ます。たとえば、文字列リテラルを印刷すると、文字列を2行で印刷するのではなく、#"Line 1\nLine 2"#改行エスケープシーケンス(\n)が印刷されます。

let string = #"A string with "double quotes" in it."#
print(string) //prints: A string with "double quotes" in it.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.