Wie mache ich schnell eine neue Zeile?

74

Gibt es eine Möglichkeit, schnell eine neue Zeile wie "\ n" für Java zu erstellen?

var example: String = "Hello World \n This is a new line"
Westink
quelle
2
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:

Hello World
This is 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.

BradzTech
quelle
27

Auch nützlich:

let multiLineString = """
                  Line One
                  Line Two
                  Line Three
                  """
  • Macht das Lesen des Codes verständlicher
  • Ermöglicht das Einfügen von Kopien
Pbk
quelle
9

Sie können den folgenden Code verwenden;

var example: String = "Hello World \r\n This is a new line"
Celil Bozkurt
quelle
\ r \ n ist besser als \ n für ZawGyi Schriftart in unserem Land
Zin Win Htet
2

Du kannst das

textView.text = "Name: \(string1) \n" + "Phone Number: \(string2)"

Die Ausgabe wird sein

Name: Ausgabe von string1 Telefonnummer: Ausgabe von string2

Rawand Saeed
quelle
2

"\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 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.

Mojtaba Hosseini
quelle