Wie kann ich entfernen nachgestellte Leerzeichen aus einer QString?
Möchte ich alle entfernen, wird der trailing-whitespace-Zeichen in einem QString
. Ich bin auf der Suche um zu tun, was die Python-Funktion str.rstrip()
mit einem QString
.
Ich habe einige Googeln und fand dies: http://www.qtforum.org/article/20798/how-to-strip-trailing-whitespace-from-qstring.html
Also, was ich jetzt haben, ist so etwas wie dieses:
while(str.endsWith( ' ' )) str.chop(1);
while(str.endsWith( '\n' )) str.chop(1);
Ist es ein einfacher Weg, dies zu tun? Ich will, dass alle whitespace-Zeichen am Anfang.
InformationsquelleAutor der Frage Di Zou | 2011-11-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
QString
hat zwei Methoden verwandt zu trimmen Leerzeichen:QString QString::getrimmt() const
Gibt einen string zurück, der hat die Leerzeichen entfernt am Anfang und am Ende.
QString QString:: (vereinfacht) () const
Gibt einen string zurück, der hat die Leerzeichen entfernt am Anfang und am Ende, und das hat jede Sequenz von internen Leerzeichen ersetzt mit einem einzigen Raum.
Wenn Sie möchten, entfernen Sie nur die Leerzeichen, die Sie implementieren müssen, die sich. Hier ist eine solche Implementierung, die imitiert die Umsetzung der
trimmed
:InformationsquelleAutor der Antwort Frank S. Thomas
QString nur zwei trimming-Funktionen. Im Falle dass, wenn Sie nicht passen Ihre Bedürfnisse, ich fürchte, Sie implementieren müssen, um Ihre eigenen benutzerdefinierten trimmen-Funktion.
QString QString:: (vereinfacht) () const
Gibt einen string zurück, der hat die Leerzeichen entfernt am Anfang und am Ende, und das hat jede Sequenz von internen Leerzeichen ersetzt mit einem einzigen Raum.
QString QString::getrimmt () const
Gibt einen string zurück, der hat die Leerzeichen entfernt am Anfang und am Ende.
InformationsquelleAutor der Antwort Andrejs Cainikovs
Wenn Sie nicht haben oder brauchen nicht alle whitespace-Zeichen am Anfang entweder, Sie könnte verwenden
QString QString::getrimmt () const
.Dieser ignoriert alle internen whitespaces, die korrigiert werden, die alternative Lösung zur Verfügung gestellt von Andrejs Cainikovs.
InformationsquelleAutor der Antwort Bart
Können Sie es mit einem regexp:
Ob das schneller gehen würde, ich bin mir nicht sicher.
InformationsquelleAutor der Antwort Silas Parker
QString::Getrimmt() entfernt Leerzeichen am Anfang und am Ende - wenn Sie sicher sind, dass es keine Leerzeichen am Anfang können Sie diesen verwenden.
InformationsquelleAutor der Antwort Martin Beckett
Wenn Sie nicht wollen, um eine Tiefe Kopie der Zeichenfolge:
InformationsquelleAutor der Antwort Johan
Keine Tiefe Kopie und keine wiederholten Anrufe zu Größe/hacken:
InformationsquelleAutor der Antwort Jason C
Soweit ich weiß, nur die built-in-Funktionen beschnitten sind() und (vereinfacht) (). So müssen Sie die trim manuell. In diesem Fall sollten Sie die QChar-Funktion isSpace() um zu prüfen, ob ein Zeichen ein Leerzeichen.
InformationsquelleAutor der Antwort Sebastian Negraszus
Dies ist eine variation der Antwort geschrieben von Frank S. Thomas:
InformationsquelleAutor der Antwort CapelliC