Vea mi respuesta que muestra hasta 4 formas diferentes de imprimir una Stringinstancia que contiene comillas dobles.
Imanou Petit
Respuestas:
221
Con una barra invertida antes de la comilla doble que desea insertar en la Cadena:
let sentence ="They said \"It's okay\", didn't they?"
Ahora sentencees:
Dijeron "Está bien", ¿no?
Se llama "escapar" de un carácter: estás usando su valor literal, no será interpretado.
Con Swift 4, alternativamente, puede optar por utilizar el """delimitador para texto literal donde no hay necesidad de escapar:
let sentence = """
They said "It's okay", didn't they?
Yes, "okay" is what they said.
"""
Esto da:
Dijeron "Está bien", ¿no?
Sí, "está bien" es lo que dijeron.
Con Swift 5 puedes usar delimitadores mejorados:
Los literales de cadena ahora se pueden expresar mediante delimitadores mejorados . Una cadena literal con uno o más signos numéricos (#) antes de la cita de apertura trata las barras invertidas y los caracteres de comillas dobles como literales, a menos que estén seguidos por el mismo número de signos numéricos. Utilice delimitadores mejorados para evitar saturar los literales de cadena que contienen muchos caracteres de comillas dobles o barra invertida con escapes adicionales.
Su cadena ahora se puede representar como:
let sentence =#"They said "It's okay", didn't they?"#
Y si desea agregar una variable a su cadena, también debe agregar #después de la barra invertida:
Los literales de cadena pueden incluir los siguientes caracteres especiales:
Los caracteres especiales de escape \ 0 (carácter nulo), \ (barra invertida), \ t (tabulación horizontal), \ n (salto de línea), \ r (retorno de carro), \ "(comillas dobles) y \ '(comillas simples)
Un escalar Unicode arbitrario, escrito como \ u {n}, donde n es un número hexadecimal de 1 a 8 dígitos con un valor igual a un punto de código Unicode válido
lo que significa que además de poder escapar del carácter con barra invertida, puede usar el valor Unicode. Las siguientes dos declaraciones son equivalentes:
let myString ="I love \"unnecessary\" quotation marks"let myString ="I love \u{22}unnecessary\u{22} quotation marks"
Debido a que los literales de cadena de varias líneas utilizan tres comillas dobles en lugar de solo una, puede incluir una comilla doble ( ") dentro de un literal de cadena de varias líneas sin escapar.
let string ="""
A string with "double quotes" in it.
"""
print(string)//prints: A string with "double quotes"in it.
4. Usar literales de cadena sin formato (requiere Swift 5)
Puede colocar un literal de cadena dentro de delimitadores extendidos para incluir caracteres especiales en una cadena sin invocar su efecto. Coloca la cadena entre comillas ( ") y la rodea con signos numéricos ( #). Por ejemplo, al imprimir la cadena literal se #"Line 1\nLine 2"#imprime la secuencia de escape del salto de línea ( \n) en lugar de imprimir la cadena en dos líneas.
let string =#"A string with "double quotes" in it."#
print(string)//prints: A string with "double quotes"in it.
String
instancia que contiene comillas dobles.Respuestas:
Con una barra invertida antes de la comilla doble que desea insertar en la Cadena:
Ahora
sentence
es:Se llama "escapar" de un carácter: estás usando su valor literal, no será interpretado.
Con Swift 4, alternativamente, puede optar por utilizar el
"""
delimitador para texto literal donde no hay necesidad de escapar:Esto da:
Con Swift 5 puedes usar delimitadores mejorados:
Su cadena ahora se puede representar como:
Y si desea agregar una variable a su cadena, también debe agregar
#
después de la barra invertida:fuente
Para completar, de los documentos de Apple :
lo que significa que además de poder escapar del carácter con barra invertida, puede usar el valor Unicode. Las siguientes dos declaraciones son equivalentes:
myString
ahora contendría:fuente
Según sus necesidades, puede utilizar uno de los 4 patrones siguientes para imprimir un Swift
String
que contenga comillas dobles.1. Uso de comillas dobles de escape
Los literales de cadena pueden incluir caracteres especiales como
\"
:2. Usando escalares Unicode
Los literales de cadena pueden incluir un valor escalar Unicode escrito como
\u{n}
:3. Uso de literales de cadena de varias líneas (requiere Swift 4)
El lenguaje de programación Swift / cadenas y caracteres dice:
4. Usar literales de cadena sin formato (requiere Swift 5)
El lenguaje de programación Swift / cadenas y caracteres dice:
fuente