如果我收到如下输入:
up 1, down 2, down 3, left 5
我把它保存为数组,它会给我
["up 1", " down 2", " down 3", " left 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副本,lstrip
和rstrip
分别为左侧或右侧执行相同操作:
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"].