# (this give me list eg : ,s, s, m ...
list = list + "," + name
我想使用拆分然后加入...尝试使用以下..我不知道我在做什么
list = list.split(',') + name + collect{|c| c.name}.to_sentence
list = list.split(',') + name + collect{|c| c.name}.Join(",")
任何想法??
答案 0 :(得分:40)
我注意到这个页面出现了"字符串到char数组ruby的通用谷歌搜索"。
如果你只想在ruby中将字符串转换为char数组,
"string".chars
# ["s", "t", "r", "i", "n", "g"]
答案 1 :(得分:18)
我不明白你的问题,但如果你想将字符串转换为数组
>> "a string".split("")
=> ["a", " ", "s", "t", "r", "i", "n", "g"]
答案 2 :(得分: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"
答案 3 :(得分: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"]
答案 4 :(得分:0)
如果您尝试将“list”作为名称集合的字符串表示形式,并且您希望为其添加名称(也是字符串),则通过(例如)逗号分隔其余部分,并且结果是一个字符串,你只需要字符串连接:
list + ',' + name
至少对我来说,更好的方法是字符串插值:
"#{list},#{name}"
这使您可以更清楚地操作数据来格式化它。
但是,如果您希望通过逗号分割将“list”转换为数组并将name变量添加到结尾,则答案基本相同,String#split
和数组连接:< / p>
list.split(',') + name
希望这两个中的一个是你问题的解决方案!
答案 5 :(得分:0)
我认为最大的问题是你正在尝试使用字符串,当你应该真正使用数组时。第二个问题是你将逗号分隔的字符串与数组或列表混淆。
在Ruby中,列表和数组是不同于字符串的对象。字符串适用于存储文本,有时还存储二进制数据。
数组适用于存储数据序列,您需要能够通过数字索引访问它们。队列和堆栈通常写在数组之上,因为数组可以很容易地从开头或结尾添加和删除元素。
出于您的目的,我建议使用Array对象,然后在需要字符串表示时使用join(',')
数组。
ary = [] #=> []
ary << 'item 1' #=> ["item 1"]
ary << 'item 2' #=> ["item 1", "item 2"]
ary.join(',') #=> "item 1,item 2"
答案 6 :(得分:0)
不要忘记scan
在我的情况下,我有一个真实的朋友代码,一个“大”整数(8位数字),为了提高可读性,我想每2位破折号:
friend_code.scan(/../).join("-")
您的解决方案将是
friend_code.scan(/./).join(",")