Bagaimana cara mencetak tanda kutip ganda di dalam ""?

Jawaban:

224

Dengan garis miring terbalik sebelum tanda kutip ganda yang ingin Anda masukkan ke dalam String:

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

Sekarang sentenceadalah:

Mereka berkata "Tidak apa-apa", bukan?

Ini disebut "melarikan diri" karakter: Anda menggunakan nilai literalnya, itu tidak akan ditafsirkan.


Dengan Swift 4 Anda dapat memilih untuk menggunakan """pembatas untuk teks literal di mana tidak perlu keluar:

let sentence = """
They said "It's okay", didn't they?
Yes, "okay" is what they said.
"""

Ini memberi:

Mereka berkata "Tidak apa-apa", bukan?
Ya, "oke" adalah yang mereka katakan.


Dengan Swift 5 Anda dapat menggunakan pembatas yang ditingkatkan:

Literal string sekarang dapat diekspresikan menggunakan pembatas yang ditingkatkan . String literal dengan satu atau beberapa tanda angka (#) sebelum kutipan pembuka memperlakukan karakter garis miring terbalik dan tanda kutip ganda sebagai literal kecuali diikuti dengan jumlah tanda angka yang sama. Gunakan pembatas yang disempurnakan untuk menghindari literal string yang berantakan yang berisi banyak karakter kutip ganda atau garis miring terbalik dengan pelolosan ekstra.

String Anda sekarang dapat direpresentasikan sebagai:

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

Dan jika Anda ingin menambahkan variabel ke string Anda, Anda juga harus menambahkan #setelah garis miring terbalik:

let sentence = #"My "homepage" is \#(url)"#
Eric Aya
sumber
24

Untuk kelengkapan, dari dokumen Apple :

Literal string dapat menyertakan karakter khusus berikut:

  • Karakter khusus yang lolos \ 0 (karakter nol), \ (garis miring terbalik), \ t (tab horizontal), \ n (umpan baris), \ r (carriage return), \ "(petik ganda) dan \ '(petik tunggal)
  • Skalar Unicode arbitrer, ditulis sebagai \ u {n}, dengan n adalah angka heksadesimal 1–8 digit dengan nilai yang sama dengan titik kode Unicode yang valid

yang berarti selain dapat meng-escape karakter dengan garis miring terbalik, Anda dapat menggunakan nilai unicode. Dua pernyataan berikut ini setara:

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

myString sekarang akan berisi:

Saya suka tanda kutip yang "tidak perlu"

Daniel
sumber
9

Sesuai dengan kebutuhan Anda, Anda dapat menggunakan salah satu dari 4 pola berikut untuk mencetak Swift Stringyang berisi tanda kutip ganda.


1. Menggunakan tanda kutip ganda yang dipisahkan

Literal string dapat menyertakan karakter khusus seperti \":

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

2. Menggunakan skalar Unicode

Literal string dapat menyertakan nilai skalar Unicode yang ditulis sebagai \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. Menggunakan literal string multiline (memerlukan Swift 4)

The Swift Bahasa Pemrograman / String dan Karakter negara:

Karena literal string multilini menggunakan tiga tanda kutip ganda, bukan hanya satu, Anda dapat menyertakan tanda kutip ganda ( ") di dalam literal string multilini tanpa menguranginya.

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

4. Menggunakan literal string mentah (membutuhkan Swift 5)

The Swift Bahasa Pemrograman / String dan Karakter negara:

Anda dapat menempatkan string literal dalam pembatas yang diperluas untuk menyertakan karakter khusus dalam string tanpa meminta efeknya. Anda menempatkan string Anda di dalam tanda kutip ( ") dan mengelilinginya dengan tanda angka ( #). Misalnya, mencetak string literal #"Line 1\nLine 2"#mencetak baris feed escape sequence ( \n) daripada mencetak string melintasi dua baris.

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