去除所有空白的Ruby函数是什么?我正在寻找一些类似于PHP的trim()?


当前回答

别忘了:

$ s = "   I have white space   ".split
=> ["I", "have", "white", "space"]

其他回答

Ruby的.strip方法执行与trim()相当的PHP功能。

删除所有空白:

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

@塔斯让我意识到我原来的答案连续删除重复的字母-恶心!从那以后,我改用了压缩方法,如果使用Rails框架,这种方法对这种情况更聪明。

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

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

引用:http://apidock.com/rails/String/squish

"asd sda sda sd".gsub(' ', '')
=> "asdsdasdasd"

我个人倾向于使用.tr方法

如:

string = "this is a string to smash together"

string.tr(' ', '') # => "thisisastringtosmashtogether"

感谢@FrankScmitt指出,要删除所有空白(不仅仅是空格),你需要这样写:

string = "this is a string with tabs\t and a \nnewline"

string.tr(" \n\t", '') # => "thisisastringwithtabsandanewline"

如果你正在使用Rails/ActiveSupport,你可以使用挤压方法。它删除字符串两端的空白,并将多个空白分组为单个空格。

如。

" a  b  c ".squish

将导致:

"a b c"

查看api.rubyonrails.org的参考资料。

你可以试试这个

"Some Special Text Values".gsub(/[[:space:]]+/, "")

使用:space:删除不间断的空格和常规空格。