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


当前回答

String#strip -删除开头和结尾的所有空白。

字符串#lstrip -只是从开始。

String#rstrip -只从末尾开始。

String#chomp(不带参数)-从末尾删除行分隔符(\n或\r\n)。

String#chop -删除最后一个字符。

x.delete(" \t\r\n")删除所有列出的空白。

String#gsub - x.gsub(/[[:space:]]/, ") -删除所有空白,包括unicode空白。


注意:上面所有的方法都返回一个新的字符串,而不是改变原来的字符串。如果您想就地更改字符串,请使用!最后。

其他回答

s = "I have white space".delete(' ')

并模拟PHP的trim()函数:

s = "   I have leading and trailing white space   ".strip

现在说这个有点晚了,但是任何在谷歌上搜索这个页面的人都可能对这个版本感兴趣

如果你想清理一大块预先格式化的文本,用户可能以某种方式剪切和粘贴到你的应用程序,但保留单词间距,试试这个:

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"

我有点晚了,但是我使用strip!来删除尾随和前导空格。如果您有一个数组,就像我所做的那样,我需要遍历该数组并在实例结束后保存它。!搞定了这个。这删除了结尾或开头的所有空格,而不仅仅是第一个前导或最后一个尾随。

例如:

array = ["hello ","   Melanie", "is", " new ", "to  ", " programming"]
array.each do |i|
  i.strip!
end

这将输出到:["hello","Melanie", "is", "new "," to", "programming"]。我在一个视频中进一步探讨/分享了这个问题,以突出这个代码来回答我遇到的类似问题。

我是较新的编程和使用strip不工作,因为它没有保存到循环结束后的数组。

" Raheem Shaik ".strip

它将删除左边和右边的空格。 这段代码会给我们"拉希姆·谢克"

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