是否可以连接字符串数组并在所有元素上插入分隔符?
例如:
%w[you me].join(" hi-") => "you hi-me" # expected "hi-you hi-me"
答案 0 :(得分:1)
你不能split
一个数组。您可以split
个文件和字符串。
如果您正在谈论拆分字符串:
'now-is-the-time'.split(/-/) # => ["now", "is", "the", "time"]
使用捕获分隔符/拆分器的模式将返回结果中的分隔符:
'now-is-the-time'.split(/(-)/) # => ["now", "-", "is", "-", "the", "-", "time"]
抱歉,我很困惑。我想将一个数组加入一个字符串。
您无法有选择地加入,但您可以在数组中的元素之间插入文本:
%w[foo bar].join(' he-') # => "foo he-bar"
您可以添加“加入”文字:
ary = %w[foo bar foo bar]
join_text = ' he-'
join_text + ary.join(join_text) # => " he-foo he-bar he-foo he-bar"
答案 1 :(得分:1)
看起来你需要的是:
%w[you me].map {|s| s != "hi" ? "hi-#{s}": s }.join(' ') => "hi-you hi-me"
%w[hi you me].map {|s| s != "hi" ? "hi-#{s}": s }.join(' ') => "hi hi-you hi-me"
修改:
现在您已经更改了问题,测试不再有用了。
这样做:
%w[you me].map {|s| "hi-#{s}" }.join(' ') => "hi-you hi-me"
答案 2 :(得分:1)
Lambda版本:
ary = %w[foo bar foo bar]
add_text = ->x{' he-'+x}
p ary.map(&add_text).join #=> " he-foo he-bar he-foo he-bar"