Ayu*_*hra 14 ruby string whitespace
如何从Ruby中的字符串中删除所有换行符和空格?
例如,如果我们有一个字符串:
"123\n12312313\n\n123 1231 1231 1"
Run Code Online (Sandbox Code Playgroud)
应该成为这样的:
"12312312313123123112311"
Run Code Online (Sandbox Code Playgroud)
也就是说,应删除所有空格.
Fun*_*uit 36
您可以使用以下内容:
var_name.gsub!(/\s+/, '')
Run Code Online (Sandbox Code Playgroud)
或者,如果要返回更改的字符串,而不是修改变量,
var_name.gsub(/\s+/, '')
Run Code Online (Sandbox Code Playgroud)
这也可以让你用其他方法链接它(即something_else = var_name.gsub(...).to_i剥离空格然后将其转换为整数).gsub!将它编辑到位,所以你必须写var_name.gsub!(...); something_else = var_name.to_i.严格来说,只要至少有一个更改,gsub!将返回新版本(即同样的东西gsub将返回),但是如果你得到一个没有空格的字符串的机会,它将返回nil,事情会发生打破.因此,gsub如果你是链接方法,我更愿意.
gsub通过将第一个参数的任何匹配替换为内容第二个参数来工作.在这种情况下,它将任何连续的空白字符序列(或只是一个)与正则表达式匹配/\s+/,然后用空字符串替换它们.如果你想对匹配的部分进行一些处理,而不是直接替换,那么还有一个块形式; String#gsub有关详细信息,请参阅.
这个类的Ruby文档Regexp是学习更多关于正则表达式的一个很好的起点 - 我发现它们在各种各样的情况下非常有用,在这种情况下,这里或那里几毫秒都没有数,你不会需要匹配可以任意嵌套的东西.
正如Gene在评论中所说,你也可以使用tr:
var_name.tr(" \t\r\n", '')
Run Code Online (Sandbox Code Playgroud)
它的工作原理类似的方式,但是,而不是更换一个正则表达式,它替代了的每个实例ñ日,它被称为上与字符串中的第一个参数的字符ñ日的第二个参数的字符,或者如果没有,没有.有关String#tr更多信息,请参阅
你也可以使用String#delete:
str = "123\n12312313\n\n123 1231 1231 1"
str.delete "\s\n"
#=> "12312312313123123112311"
Run Code Online (Sandbox Code Playgroud)
你可以使用String#delete!要进行修改str,但如果没有进行任何更改,则会delete!返回注释nil
| 归档时间: |
|
| 查看次数: |
20907 次 |
| 最近记录: |