1

文字列を複数の変数に変換する方法はありますか? 私が試してみると:

string = "string1 string2 string3 string4"
string.split(" ")

私は配列を取得することを知っています:

=> ["string1", "string2", "string3", "string4"]

stringしかし、次のような複数の文字列に変換するコードが必要です。

string1 = "string1"
string2 = "string2"
string3 = "string3"
string4 = "string4"

それを行う方法はありますか?

4

3 に答える 3

3

方法は次のとおりです。

string = "string1 string2 string3 string4"
string.split(' ').each do |s|
   instance_variable_set :"@#{s}", s
   self.class.class_eval { attr_accessor :"#{s}" }
end

string1 #=> "string1"
string2 #=> "string2"

IRB でテスト済みruby 2.0.0p247 (2013-06-27) [x64-mingw32]

もう 1 つの方法は、分割の結果を配列に格納し、ゴースト メソッドを使用して変数アクセスを模倣することです。

于 2013-07-18T11:45:41.013 に答える
0

そして、文字列を名前付きの変数または複数の文字列に変換する必要があるため、特にそれらのいずれかを使用できます。そのため、配列は役に立ちません

私はあなたが初心者であることを知っているので、変数を分離できるのと同じように、個々の配列要素を参照できることに気付いていないのでしょうか?

string = "string1 string2 string3 string4"
my_words = string.split(" ")

if my_words[1] = "string2" 
  puts "I found 'string2' in the second word"
end

配列要素には、0、1、2 から ( my_words.size - 1 ) まで個別に番号が付けられます。

負の数を使用して最後の配列項目から逆方向に作業できるため、 my_words[-1]「string4」が含まれています

于 2013-07-18T10:21:45.223 に答える