Як надрукувати подвійні лапки всередині “”?


97

Хтось може підказати мені, як я можу надрукувати щось наступним чином "з" подвійними лапками.

"Подвійні котирування"



Дивіться мою відповідь, яка показує до 4 різних способів друку Stringекземпляра, який містить подвійні лапки.
Imanou Petit

Відповіді:


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 ви можете використовувати розширені роздільники:

Лінійні рядки тепер можуть бути виражені за допомогою розширених роздільників . Рядковий літерал з одним або кількома цифровими знаками (#) перед початковою лапкою розглядає зворотні скісні риски та символи з подвійними лапками як літерал, якщо за ними не стоїть однакова кількість цифрових знаків. Використовуйте розширені роздільники, щоб уникнути захаращення рядкових літералів, які містять багато символів із подвійними лапками або зворотною рискою з додатковими екранами.

Тепер ваш рядок може бути представлений як:

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

І якщо ви хочете додати змінну до рядка, ви також повинні додати #після зворотної косої риски:

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

24

Для повноти, з документів Apple :

Рядкові літерали можуть містити такі спеціальні символи:

  • Екрановані спеціальні символи \ 0 (нульовий символ), \ (коса коса риса), \ t (горизонтальна вкладка), \ n (подача рядка), \ r (повернення каретки), \ "(подвійна лапка) та \ '(одинарна лапка)
  • Довільний скаляр Юнікоду, записаний як \ u {n}, де n - 1–8-значне шістнадцяткове число зі значенням, що дорівнює дійсній кодовій точці Юнікоду

це означає, що окрім того, що ви зможете втекти від символу за допомогою зворотної риски, ви можете використовувати значення юнікоду. Наступні два твердження рівнозначні:

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

myString Тепер міститиме:

Я люблю "непотрібні" лапки


8

Відповідно до ваших потреб, ви можете використовувати один із 4 наступних зразків , щоб надрукувати Swift, Stringякий містить подвійні лапки.


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)

Swift Мова програмування / Рядки і Символи стану:

Оскільки багаторядкові рядкові літерали використовують три подвійні лапки замість лише одного, ви можете включити подвійні лапки ( ") всередину багаторядкового рядкового літералу, не уникаючи цього.

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

4. Використання необроблених рядкових літералів (потрібен Swift 5)

Swift Мова програмування / Рядки і Символи стану:

Ви можете розмістити рядковий літерал у розширених роздільниках, щоб включити спеціальні символи в рядок, не викликаючи їх ефекту. Ви розміщуєте рядок у лапках ( ") і оточуєте його цифрами ( #). Наприклад, друк рядкового літералу #"Line 1\nLine 2"#друкує вихідну послідовність подання рядка ( \n), а не друк рядка через два рядки.

let string = #"A string with "double quotes" in it."#
print(string) //prints: A string with "double quotes" in it.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.