2017-11-25 18 views
-1

私のような入力を受け取った場合:ユーザー入力からアレイの空白を削除するにはどうすればよいですか?

up 1, down 2, down 3, left 5 

そして、私は配列としてこれを保存し、それは私に

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

を与えるだろう。しかし、私は前にダウンスペースを削除し、左する必要があります!

アイデア?

+0

あなたの出力は無効です。 – Ilya

+0

'gets.chomp.split( '、')#=> [" up 1 "、" down 2 "、" down 3 "、" left 5 "]' –

+0

_これを配列として保存します... "入力をどのように配列に変換しますか?コードを表示してください。 – Stefan

答えて

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" 
3

ので、あなたは空白を削除したいだけです特定の文字列を使用する前にlstrip:削除先頭の空白をとSTRのコピーを返します

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

だけの思考...

次のような文字列として "入力を受け取り、" オフの場合:あなたが行うことができ

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

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

これは:

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

OR、あなたは(私のような)のバカいないのであれば、あなたが行うことができます:

str.split(', ') 

セバスチャンは、(非常に丁寧に)指摘するように。

1

スキッシュを使用して空白を削除する方法はありますか。私は前にダウンスペースを削除し、左する必要が

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

!正確な質問に答える

は、次のように述べています

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