Dies ist korrekt und gilt auch für Swift (abhängig davon, wo Sie diese Zeichenfolge verwenden. In einem Beschriftungstitel erhalten Sie möglicherweise nicht mehrere Zeilen, ohne auch die Beschriftungseigenschaft festzulegen). Entfernen Sie das Leerzeichen vor der nächsten Zeile, damit Sie das bekommen, was Sie brauchen.
Smozgur
Wie drucken Sie die Zeile? In irgendeiner Art von Benutzeroberfläche? Auf einer CLI?
David Hoelzer
Antworten:
139
Sie sollten in der Lage sein, \neine Swift-Zeichenfolge zu verwenden, und sie sollte wie erwartet funktionieren und ein Zeilenumbruchzeichen erstellen. Sie sollten das Leerzeichen nach dem \nfür die richtige Formatierung wie folgt entfernen :
var example: String = "Hello World \nThis is a new line"
Was, wenn es auf der Konsole gedruckt wird, werden sollte:
HelloWorldThisis a new line
Abhängig davon, wie Sie diese Zeichenfolge verwenden, müssen jedoch einige andere Überlegungen angestellt werden, z.
Wenn Sie es auf die Texteigenschaft eines UILabels setzen, stellen Sie sicher, dass die numberOfLines = 0 des UILabels unendlich viele Zeilen zulässt.
Verwenden Sie in einigen Netzwerkanwendungsfällen \r\nstattdessen die Windows-Newline.
Bearbeiten : Sie sagten, Sie verwenden ein UITextField, es unterstützt jedoch nicht mehrere Zeilen. Sie müssen eine UITextView verwenden.
In E-Mails wird beispielsweise anstelle einer neuen Zeile das genaue "\ n" in den Text eingefügt, wenn Sie es in der benutzerdefinierten Tastatur verwenden, z. textDocumentProxy.insertText("\n")
Es sind weitere newLine-Zeichen verfügbar, aber ich kann sie hier nicht einfach einfügen ( weil sie neue Zeilen bilden ).
mit dieser Erweiterung:
extensionCharacterSet{
var allCharacters: [Character] {
var result: [Character] = []
for plane: UInt8in0...16whereself.hasMember(inPlane: plane) {
for unicode inUInt32(plane) << 16 ..< UInt32(plane + 1) << 16 {
iflet uniChar = UnicodeScalar(unicode), self.contains(uniChar) {
result.append(Character(uniChar))
}
}
}
return result
}
}
Sie können auf alle Zeichen in jedem zugreifen CharacterSet. Es gibt einen Zeichensatz namens newlines. Verwenden Sie eine davon, um Ihre Anforderungen zu erfüllen:
let newlines = CharacterSet.newlines.allCharacters
for newLine in newlines {
print("Hello World \(newLine) This is a new line")
}
Bewahren Sie dann das getestete und überall verwendete auf und verwenden Sie es überall. Beachten Sie, dass Sie den Index des Zeichensatzes nicht weiterleiten können. Es kann sich ändern.
Aber meistens"\n" funktioniert es einfach wie erwartet.
Antworten:
Sie sollten in der Lage sein,
\n
eine Swift-Zeichenfolge zu verwenden, und sie sollte wie erwartet funktionieren und ein Zeilenumbruchzeichen erstellen. Sie sollten das Leerzeichen nach dem\n
für die richtige Formatierung wie folgt entfernen :var example: String = "Hello World \nThis is a new line"
Was, wenn es auf der Konsole gedruckt wird, werden sollte:
Hello World This is a new line
Abhängig davon, wie Sie diese Zeichenfolge verwenden, müssen jedoch einige andere Überlegungen angestellt werden, z.
\r\n
stattdessen die Windows-Newline.Bearbeiten : Sie sagten, Sie verwenden ein UITextField, es unterstützt jedoch nicht mehrere Zeilen. Sie müssen eine UITextView verwenden.
quelle
Auch nützlich:
let multiLineString = """ Line One Line Two Line Three """
quelle
Sie können den folgenden Code verwenden;
var example: String = "Hello World \r\n This is a new line"
quelle
Du kannst das
textView.text = "Name: \(string1) \n" + "Phone Number: \(string2)"
Die Ausgabe wird sein
Name: Ausgabe von string1 Telefonnummer: Ausgabe von string2
quelle
"\n"
funktioniert nicht überall!In E-Mails wird beispielsweise anstelle einer neuen Zeile das genaue "\ n" in den Text eingefügt, wenn Sie es in der benutzerdefinierten Tastatur verwenden, z.
textDocumentProxy.insertText("\n")
Es sind weitere newLine-Zeichen verfügbar, aber ich kann sie hier nicht einfach einfügen ( weil sie neue Zeilen bilden ).
mit dieser Erweiterung:
extension CharacterSet { var allCharacters: [Character] { var result: [Character] = [] for plane: UInt8 in 0...16 where self.hasMember(inPlane: plane) { for unicode in UInt32(plane) << 16 ..< UInt32(plane + 1) << 16 { if let uniChar = UnicodeScalar(unicode), self.contains(uniChar) { result.append(Character(uniChar)) } } } return result } }
Sie können auf alle Zeichen in jedem zugreifen
CharacterSet
. Es gibt einen Zeichensatz namensnewlines
. Verwenden Sie eine davon, um Ihre Anforderungen zu erfüllen:let newlines = CharacterSet.newlines.allCharacters for newLine in newlines { print("Hello World \(newLine) This is a new line") }
Bewahren Sie dann das getestete und überall verwendete auf und verwenden Sie es überall. Beachten Sie, dass Sie den Index des Zeichensatzes nicht weiterleiten können. Es kann sich ändern.
Aber meistens
"\n"
funktioniert es einfach wie erwartet.quelle