Wie lautet die Ruby-Funktion zum Entfernen von todo weiße Flecken? Ich bin auf der Suche nach etwas ähnlichem wie PHPs trim()
?
Antworten
Zu viele Anzeigen?split.join
löscht alle Leerzeichen in der Zeichenkette.
" a b c d ".split.join
> "abcd"
Er ist einfach zu tippen und zu merken und eignet sich daher gut für die Konsole und zum schnellen Hacken. In ernsthaftem Code ist es allerdings nicht willkommen, da es die Absicht verschleiert.
(Basierend auf dem Kommentar von Piotr in Justikels Antwort oben).
Verwenden Sie gsub oder delete. Der Unterschied besteht darin, dass gsub Tabs entfernen kann, delete hingegen nicht. Manchmal gibt es Tabs in Dateien, die von den Editoren hinzugefügt werden.
a = "\tI have some whitespaces.\t"
a.gsub!(/\s/, '') #=> "Ihavesomewhitespaces."
a.gsub!(/ /, '') #=> "\tIhavesomewhitespaces.\t"
a.delete!(" ") #=> "\tIhavesomewhitespaces.\t"
a.delete!("/\s/") #=> "\tIhavesomewhitespaces.\t"
a.delete!('/\s/') #=> using single quote is unexpected, and you'll get "\tI have ome whitepace.\t"
Die gsub-Methode reicht völlig aus.
Die gsub-Methode kann auf eine Zeichenkette angewendet werden und sagt:
a = "this is a string"
a = a.gsub(" ","")
puts a
#Output: thisisastring
Die Methode gsub sucht nach jedem Vorkommen des ersten Arguments und ersetzt es durch das zweite Argument. In diesem Fall wird jedes Leerzeichen in der Zeichenkette ersetzt und entfernt.
Ein weiteres Beispiel:
b = "the white fox has a torn tail"
Ersetzen wir jedes Vorkommen des Buchstabens "t" durch ein großes "T".
b = b.gsub("t","T")
puts b
#Output: The whiTe fox has a Torn Tail