Siehe meine Antwort , die bis zu 4 verschiedene Möglichkeiten zum Drucken einer StringInstanz zeigt, die doppelte Anführungszeichen enthält.
Imanou Petit
Antworten:
218
Mit einem Backslash vor dem doppelten Anführungszeichen möchten Sie in den String einfügen:
let sentence ="They said \"It's okay\", didn't they?"
Jetzt sentenceist:
Sie sagten "Es ist okay", nicht wahr?
Es heißt "Escape" eines Zeichens: Wenn Sie seinen Literalwert verwenden, wird er nicht interpretiert.
Mit Swift 4 können Sie alternativ das """Trennzeichen für wörtlichen Text verwenden, bei dem Sie nicht entkommen müssen:
let sentence = """
They said "It's okay", didn't they?
Yes, "okay" is what they said.
"""
Das gibt:
Sie sagten "Es ist okay", nicht wahr?
Ja, "okay" haben sie gesagt.
Mit Swift 5 können Sie erweiterte Trennzeichen verwenden:
String-Literale können jetzt mit erweiterten Trennzeichen ausgedrückt werden . Ein Zeichenfolgenliteral mit einem oder mehreren Zahlenzeichen (#) vor dem Eröffnungszitat behandelt Backslashes und doppelte Anführungszeichen als Literal, es sei denn, ihnen folgt die gleiche Anzahl von Zahlenzeichen. Verwenden Sie erweiterte Trennzeichen, um unübersichtliche Zeichenfolgenliterale zu vermeiden, die viele doppelte Anführungszeichen oder Backslash-Zeichen mit zusätzlichen Escapezeichen enthalten.
Ihre Zeichenfolge kann jetzt wie folgt dargestellt werden:
let sentence =#"They said "It's okay", didn't they?"#
Und wenn Sie Ihrer Zeichenfolge eine Variable hinzufügen möchten, sollten Sie diese auch #nach dem Backslash hinzufügen :
String-Literale können die folgenden Sonderzeichen enthalten:
Die maskierten Sonderzeichen \ 0 (Nullzeichen), \ (Backslash), \ t (horizontale Registerkarte), \ n (Zeilenvorschub), \ r (Wagenrücklauf), \ "(doppeltes Anführungszeichen) und \ '(einfaches Anführungszeichen)
Ein beliebiger Unicode-Skalar, geschrieben als \ u {n}, wobei n eine 1–8-stellige Hexadezimalzahl mit einem Wert ist, der einem gültigen Unicode-Codepunkt entspricht
Dies bedeutet, dass Sie nicht nur den Charakter mit einem Backslash umgehen können, sondern auch den Unicode-Wert verwenden können. Die folgenden zwei Aussagen sind äquivalent:
let myString ="I love \"unnecessary\" quotation marks"let myString ="I love \u{22}unnecessary\u{22} quotation marks"
Da mehrzeilige Zeichenfolgenliterale drei doppelte Anführungszeichen anstelle von nur einem verwenden, können Sie ein doppeltes Anführungszeichen ( ") in ein mehrzeiliges Zeichenfolgenliteral einfügen, ohne es zu umgehen.
let string ="""
A string with "double quotes" in it.
"""
print(string)//prints: A string with "double quotes"in it.
4. Verwenden von rohen String-Literalen (erfordert Swift 5)
Sie können ein Zeichenfolgenliteral in erweiterte Trennzeichen einfügen, um Sonderzeichen in eine Zeichenfolge aufzunehmen, ohne deren Wirkung aufzurufen. Sie setzen Ihre Zeichenfolge in Anführungszeichen ( ") und umgeben diese mit Zahlenzeichen ( #). Wenn Sie beispielsweise das Zeichenfolgenliteral drucken, wird die #"Line 1\nLine 2"#Zeilenvorschub-Escape-Sequenz ( \n) gedruckt, anstatt die Zeichenfolge über zwei Zeilen zu drucken.
let string =#"A string with "double quotes" in it."#
print(string)//prints: A string with "double quotes"in it.
String
Instanz zeigt, die doppelte Anführungszeichen enthält.Antworten:
Mit einem Backslash vor dem doppelten Anführungszeichen möchten Sie in den String einfügen:
Jetzt
sentence
ist:Es heißt "Escape" eines Zeichens: Wenn Sie seinen Literalwert verwenden, wird er nicht interpretiert.
Mit Swift 4 können Sie alternativ das
"""
Trennzeichen für wörtlichen Text verwenden, bei dem Sie nicht entkommen müssen:Das gibt:
Mit Swift 5 können Sie erweiterte Trennzeichen verwenden:
Ihre Zeichenfolge kann jetzt wie folgt dargestellt werden:
Und wenn Sie Ihrer Zeichenfolge eine Variable hinzufügen möchten, sollten Sie diese auch
#
nach dem Backslash hinzufügen :quelle
Der Vollständigkeit halber aus Apple-Dokumenten :
Dies bedeutet, dass Sie nicht nur den Charakter mit einem Backslash umgehen können, sondern auch den Unicode-Wert verwenden können. Die folgenden zwei Aussagen sind äquivalent:
myString
würde jetzt enthalten:quelle
Je nach Bedarf können Sie eines der folgenden 4 Muster verwenden, um einen Swift zu drucken
String
, der doppelte Anführungszeichen enthält.1. Verwenden Sie doppelte Anführungszeichen
String-Literale können Sonderzeichen enthalten wie
\"
:2. Verwenden von Unicode-Skalaren
Zeichenfolgenliterale können Unicode-Skalarwerte enthalten, die wie folgt geschrieben sind
\u{n}
:3. Verwenden von mehrzeiligen Zeichenfolgenliteralen (erfordert Swift 4)
In der Programmiersprache / den Zeichenfolgen und Zeichen von Swift heißt es:
4. Verwenden von rohen String-Literalen (erfordert Swift 5)
In der Programmiersprache / den Zeichenfolgen und Zeichen von Swift heißt es:
quelle