我发现这个代码删除空白http://granth.ca/2006/02/strip-whitespace从每个数组项轨道
,但我认为是一个哈希,我试图做同样的使用数组。
我已经尝试了几个不同的东西,但无法弄清楚。
感谢您的帮助
我发现这个代码删除空白http://granth.ca/2006/02/strip-whitespace从每个数组项轨道
,但我认为是一个哈希,我试图做同样的使用数组。
我已经尝试了几个不同的东西,但无法弄清楚。
感谢您的帮助
这是collect
的用途。
yourArray.collect{|x| x.strip || x }
或者(会改变已经是 “剥夺” 字符串无“:
yourArray.collect(&:strip)
几乎是一样的,只是你改变each_key
向阵列(each
)和self[a]
的每一个元素进行处理,以a
(因为你不需要考虑散了的方法)。
.each {|a| a.strip! if a.respond_to? :strip! }
编辑
一个例子
x = [" 1 ", "b", " c ", 5]
x.each {|a| a.strip! if a.respond_to? :strip! }
puts x.inspect
输出:
["1", "b", "c", 5]
的字符串,不空格结束了。
我在做row.each {| a | a.strip!如果a.respond_to? :跳闸! }(并尝试了row2 = row.each {| a | a.strip!如果a.respond_to?:strip!}以确保它不是那样,但是这些项目仍然有空白区域。但是我正在用一个csv文件来处理这个问题,我使用FasterCSV,我可以清理CSV输出,但是对于未来的这种情况将会很有帮助 – 2010-10-13 17:41:01
@Toby你的意思是,它不工作吗?已经发布了一个例子 – 2010-10-13 17:43:48
@Toby(更新评论)检查哪些类型的数组元素具有(例如'puts x [0] .class')。如果它不是字符串,则不能使用字符串的'strip!'方法 – 2010-10-13 17:49:28
YourArray.compact.collect(&:strip)
如果你有一个零一些元素
仅供参考,您不想在Array上调用'compact'。为你的答案提供类似'a.compact.collect(&:strip)'的东西,或者像Jamie的回答那样使用'yourArray'。我知道你会选择伪代码,但对于提问者来说,技术上是精确的。 – 2011-07-24 08:41:59
@ Ray-Toal,你是对的! – Gvlamadrid 2011-08-04 04:12:53
我知道这是迟到,但发现这个squish一个简单的命令。
做myArray.map! {|a| a.squish}
将从每个数组元素中去掉所有以下和尾随的空格。
只是为了缩短一点。 'myArray.collect(&:挤气)' – 2016-09-29 19:34:37
我对Ruby真的很陌生,但'.strip'不应该返回'nil'。 '.strip!'尽管返回'nil',如果它没有去掉任何东西。我可以用交互式shell(irb)来确认。 – Andy 2016-01-07 12:27:42
你能解释你为什么做了||吗? x'? – maahd 2017-08-14 12:21:23