-1

是否可以加入字符串数组并在所有元素上插入分隔符?

例如:

%w[you me].join(" hi-") => "you hi-me" # expected "hi-you hi-me"
4

3 回答 3

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"
于 2013-11-06T17:06:21.410 回答
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"
于 2013-11-06T17:08:05.723 回答
1

拉姆达版本:

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"
于 2013-11-06T19:23:38.167 回答