如何从用户输入中删除数组中的空格?

时间:2017-11-25 19:22:13

标签: ruby-on-rails arrays ruby

如果我收到如下输入:

up 1, down 2, down 3, left 5

我把它保存为数组,它会给我

["up 1", " down 2", " down 3", " left 5"]

但是我需要在向下和向左之前删除空格!

有什么想法吗?

5 个答案:

答案 0 :(得分:3)

由于您只想删除之前的空格某些字符串使用 lstrip

  

返回str的副本,删除前导空格。

arr = ["up 1", " down 2", " down 3", " left 5"]
arr.map(&:lstrip)
# => ["up 1", "down 2", "down 3", "left 5"]

答案 1 :(得分:2)

您可以使用String#strip

array = ["up 1", " down 2", " down 3", " left 5"]
p array.map &:strip
# ["up 1", "down 2", "down 3", "left 5"]

strip会返回删除了前导空格和尾随空格的str副本,lstriprstrip分别为左侧或右侧执行相同操作:

p '     ayayayayay     '.strip    # "ayayayayay"
p '     ayayayayay     '.lstrip   # "ayayayayay     "
p '     ayayayayay     '.rstrip   # "     ayayayayay"

答案 2 :(得分:1)

只是一个想法...

在关闭情况下,您将“接收输入”作为字符串,例如:

str = "up 1, down 2, down 3, left 5"

你可以这样做:

str.gsub(', ', ',').split(',')

给出了:

 => ["up 1", "down 2", "down 3", "left 5"]

或者,如果你不是白痴(像我一样),你可以这样做:

str.split(', ')

正如塞巴斯蒂安(非常有礼貌地)指出的那样。

答案 3 :(得分:1)

如何使用挤压来移除空格。

["up 1"," down 2", "down 3"," left 5"].map(&:squish)

答案 4 :(得分:0)

  

我需要在向下和向左之前删除空格!

回答所说的确切问题:

["up 1"," down 2"," down 3"," left 5"].
  map { |e| e.gsub(/\s+(?=down|left)/, '') }
#⇒ ["up 1", "down 2", "down 3", "left 5"].