有没有办法将字符串转换为多个变量? 如果我尝试:
string = "string1 string2 string3 string4"
string.split(" ")
我知道我会得到一个数组:
=> ["string1", "string2", "string3", "string4"]
但我需要一段代码将string
转换为多个字符串,如下所示:
string1 = "string1"
string2 = "string2"
string3 = "string3"
string4 = "string4"
有办法吗?
答案 0 :(得分: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"
使用ruby 2.0.0p247 (2013-06-27) [x64-mingw32]
另一种方法是将分割结果存储在数组中,并使用ghost方法模拟变量访问。
答案 1 :(得分:2)
您可以使用多个作业未来:
string1, string2, string3, string4 = "string1 string2 string3 string4".split(" ")
答案 2 :(得分: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”