2011-02-02 24 views
19
# (this give me list eg : ,s, s, m ... 
list = list + "," + name 

私はスプリットを使用したいし、その後参加は... below..i iがは文字列を配列に変換できますか?

list = list.split(',') + name + collect{|c| c.name}.to_sentence 
list = list.split(',') + name + collect{|c| c.name}.Join(",") 

任意のアイデアをやっているかわからない使用しよう??

+0

は参考になります。 –

+0

ええ私はこれを知っているけど、分割した文字列を変換したら、別の文字列を追加して、結合を使って配列に変換したい。 – user557657

+0

"ここでは何が尋ねられているのか分かりにくい。広範な、または修辞的であり、現在の形で合理的に回答することはできません。 –

答えて

19

私はあなたの質問を理解していないが、あなたはあなたのコメントからは、アレイ

>> "a string".split("") 
=> ["a", " ", "s", "t", "r", "i", "n", "g"] 
+0

ええ私はこれを知っているけど、分割された文字列を変換したら、別の文字列を追加して、結合を使って配列に変換したい。 – user557657

+0

あなたは何をしたいのかの例を提示するべきです。私はあなたが言っていることを視覚化することはできません。 – kurumi

+0

"次にjoinを使って配列に変換したい"これは意味をなさない。 joinを使用して文字列を配列に変換することはできません。 –

4
str = "a,b,c" 
list = str.split(/,/) # => ["a", "b", "c"] 
list.join("-") # => "a-b-c" 

に文字列を変換したい場合、それはあなたにも、文字列(または複数の文字列)を追加したいように見えますリストに追加して、別の文字列に戻って結合します。おそらく、このように:

(str.split(/,/) << 'd').join(',') # => "a,b,c,d" 
list2 = ['d', 'e', 'f'] 
(str.split(/,/) << list2).join(',') # => "a,b,c,d,e,f" 

Rubyの構文はまた、「ドット」表記でオペレーターを呼び出すことができますので、これは状況を明確かもしれません:

str.split(/,/).<<('d').join(',') # => "a,b,c,d" 
str.split(/,/).<<(list2).join(',') # => "a,b,c,d,e,f" 
+0

str = "a、b、c" strを分割し、結果を["a"、 "b"、 "c"]にします。今私は文字列をstr(分割後)に追加し、str + stringにjoin( "、")を使って結合したいのですか? – user557657

+0

@user - 更新された回答を参照してください。 – maerics

0

あなたがなりあなたの「リスト」を持ってしようとしている場合名前のコレクションの文字列表現であり、残りの部分(たとえば、コンマ)で区切られた名前(文字列)に文字列を追加し、その結果を文字列にするには、文字列連結が必要です:

list + ',' + name 

これを行うためのよりよい方法は、少なくとも私には、文字列の補間である:

"#{list},#{name}" 

これは、あなたがそれをフォーマットし、データを操作しているということが明確になります。

あなたはカンマでそれを分割して配列に変換し、あなたの「リスト」を持っているし、最後に名前の変数を追加したい場合は、答えはString#splitと配列連結して、本質的には同じである:

list.split(',') + name 

うまくいけば、これらの2つのうちの1つが問題の解決策です。

0

実際に配列を使用する必要がある場合は、文字列を使用しようとしているという大きな問題があると思います。 2番目の問題は、コンマで区切られた文字列を配列またはリストと混同していることです。

Rubyでは、リストと配列は文字列とは異なるオブジェクトです。文字列はテキストやバイナリデータを格納するのに適しています。

配列はデータのシーケンスを格納するのに適しています。配列は数値インデックスでアクセスできる必要があります。キューやスタックは通常、配列の先頭に書き込まれます。配列によって、要素を開始または終了から簡単に追加または削除できるためです。

目的のために、配列オブジェクトを使用することをお勧めします。文字列表現が必要な場合はjoin(',')配列を使用することをお勧めします。

ary = []  #=> [] 
ary << 'item 1' #=> ["item 1"] 
ary << 'item 2' #=> ["item 1", "item 2"] 
ary.join(',') #=> "item 1,item 2" 
1
str = "a,b,c" 
=> "a,b,c" 

array = str.split(/,/) 
=> ["a", "b", "c"] 

# add more elements to the str: 

str << ',x,y,z' 
=> "a,b,c,x,y,z" 

array2 = str.split(/,/) 
=> ["a", "b", "c", "x", "y", "z"] 

しかし、あなたは、おそらくこのような何かしたい(プロセス入力文字列を、配列でそれらを組み立てる):私が気づい

array = [] 
str = "a,b,c" 
array << str.split(/,/) 
    => [["a", "b", "c"]] 

str = 'x,y,z' 
array << str.split(/,/) 
=> [["a", "b", "c"], ["x", "y", "z"]] 

array.flatten! 
=> ["a", "b", "c", "x", "y", "z"] 
27

このページは、「文字列の一般的なGoogle検索のために来ることchar配列のルビー "に変換します。あなたが入力し、あなたが望む出力を示す場合

あなただけのRubyで配列をcharに文字列を変換したい場合は、

"string".chars

+1

短くて甘い、ちょうど私が必要なもの – Joseph

関連する問題