663 Stimmen

Ruby-Funktion zum Entfernen aller Leerzeichen?

Wie lautet die Ruby-Funktion zum Entfernen von todo weiße Flecken? Ich bin auf der Suche nach etwas ähnlichem wie PHPs trim() ?

106voto

rusllonrails Punkte 5198
"1232 23 2 23 232 232".delete(' ')
=> "123223223232232"

Löschen geht schneller =)

user         system     total      real
gsub, s      0.180000   0.010000   0.190000 (0.193014)
gsub, s+     0.200000   0.000000   0.200000 (0.196408)
gsub, space  0.220000   0.000000   0.220000 (0.222711)
gsub, join   0.200000   0.000000   0.200000 (0.193478)
delete       0.040000   0.000000   0.040000 (0.045157)

50voto

scarver2 Punkte 7787

Ruby's .strip Methode führt das PHP-Äquivalent zu trim() .

Um alle Leerzeichen zu entfernen:

"  leading    trailing   ".squeeze(' ').strip
=> "leading trailing"

@Tass hat mich darauf aufmerksam gemacht, dass meine ursprüngliche Antwort doppelte Buchstaben hintereinander entfernt - Igitt! Ich bin inzwischen auf die Squish-Methode umgestiegen, die bei Verwendung des Rails-Frameworks intelligenter mit solchen Vorkommnissen umgeht.

require 'active_support/all'
"  leading    trailing   ".squish
=> "leading trailing"

"  good    men   ".squish
=> "good men"

Zitiert: http://apidock.com/rails/String/squish

50voto

Jules Copeland Punkte 1640

Es ist ein bisschen spät, aber alle, die diese Seite googeln, könnten an dieser Version interessiert sein -

Wenn Sie einen vorformatierten Text bereinigen möchten, den ein Benutzer irgendwie ausgeschnitten und in Ihre Anwendung eingefügt hat, aber die Wortabstände beibehalten möchten, versuchen Sie dies:

content = "      a big nasty          chunk of     something

that's been pasted                        from a webpage       or something        and looks 

like      this

"

content.gsub(/\s+/, " ").strip

#=> "a big nasty chunk of something that's been pasted from a webpage or something and looks like this"

31voto

Sapphire_Brick Punkte 1352

Um Leerzeichen auf beiden Seiten zu entfernen:

Ähnlich wie php's trim()

"   Hello  ".strip

Um alle Leerzeichen zu entfernen:

"   He    llo  ".gsub(/ /, "")

Um alle Leerzeichen zu entfernen:

"   He\tllo  ".gsub(/\s/, "")

27voto

Buddy Punkte 331
" Raheem Shaik ".strip

Dabei werden linke und rechte Seitenräume entfernt. Dieser Code würde uns geben: "Raheem Shaik"

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X