【发布时间】:2018-05-29 22:18:12
【问题描述】:
给定一个数组,如words = ["hello", ", ", "world", "!"],我需要操作由字母组成的元素,所以最后我会得到一个字符串,如"*hello*, *world*!"
我已经设法从包含使用words.map.with_index { |element, index| index if element[[/a-zA-Z+/]] == element }.compact 的字母的数组中检索索引,它们是[0, 2]。
我如何在函数中使用这些索引,以便我可以操纵单词?
【问题讨论】:
-
不清楚。为什么要收集索引而不是直接收集或修改单词?
-
我认为你有点过度思考这个问题。由于所需的最终结果是一个字符串,因此在这种情况下将其转换为
String然后使用String提供的words.join.gsub(/\w+/) {|m| "*#{m}*"}方法操作它是最有意义的@ -
@engineersmnky 或者使用 Stefan 提供的答案的变体略短 here
words.join.gsub(/\w+/,'*\0*')。 -
@SagarPandya Nah,
words.join.gsub(/\b/, '*'). -
@SagarPandya
'*\0*'究竟做了什么?