Ruby 在字符串中的所有字符之间插入字符的更简洁的方法

Ruby 在字符串中的所有字符之间插入字符的更简洁的方法,ruby,coding-style,Ruby,Coding Style,我想在字符串的每个可能索引处插入一个字符,包括第一个元素之前和最后一个元素之后。现在我正在做: result = [] result << c + str result << str + c for i in 0..str.length-2 do result << (str[0..i] + c + str[i+1..-1]) end 我假设你想要[-你好,你好,你好,你好,你好,你

我想在字符串的每个可能索引处插入一个字符,包括第一个元素之前和最后一个元素之后。现在我正在做:

      result = []
      result << c + str
      result << str + c
      for i in 0..str.length-2 do
        result << (str[0..i] + c + str[i+1..-1])
      end
我假设你想要[-你好,你好,你好,你好,你好,你好,你好-],你的问题不清楚

s = "hello"
(0..s.size).map { |i| s.clone.insert(i, "-") }
#=> ["-hello", "h-ello", "he-llo", "hel-lo", "hell-o", "hello-"]
对于那些喜欢功能性方法的人,我会:

(0..s.size).map { |i| (s[0...i] + "-" + s[i..-1]) }
#=> ["-hello", "h-ello", "he-llo", "hel-lo", "hell-o", "hello-"]
我假设你想要[-你好,你好,你好,你好,你好,你好,你好-],你的问题不清楚

s = "hello"
(0..s.size).map { |i| s.clone.insert(i, "-") }
#=> ["-hello", "h-ello", "he-llo", "hel-lo", "hell-o", "hello-"]
对于那些喜欢功能性方法的人,我会:

(0..s.size).map { |i| (s[0...i] + "-" + s[i..-1]) }
#=> ["-hello", "h-ello", "he-llo", "hel-lo", "hell-o", "hello-"]

你想从本质上交错它们吗?你想要什么输出?[-你好,hello,he-llo,hell-lo,hell-o,你好-]或-h-e-l-l-o-。您的代码指向1,您的单词指向2。您应该提供示例输入和输出,而不仅仅是解决方案和描述。您想从本质上交错它们吗?您想要什么输出?[-你好,hello,he-llo,hell-lo,hell-o,你好-]或-h-e-l-l-o-。你的代码指向1,你的单词指向2。你应该提供示例输入和输出,而不仅仅是你的解决方案和描述。+1,我认为这是OP想要的。这就是我从标题/描述中推断样本输入/输出而不是运行他们的代码所得到的结果……我很高兴你知道这就是没有样本输出的答案。@squiguy:没有黑魔法,我只是运行了答案中提供的代码,并得出了类似于此输出的结果。Priti:SO中的人似乎更喜欢完整的答案,而不仅仅是指向答案的指针,我不知道这是好是坏:-我还添加了一个FP实现,我不喜欢强制性的解决方案,除非性能是一个问题。@priti:这是我3到4次看到你批评提交接受答案的人。抱怨社区在你自己的答案之外投票/接受了另一个答案并不是一个合理的理由。+1,我想这是OP想要的。这就是我从标题/描述中推断样本输入/输出而不是运行他们的代码所得到的结果……我很高兴你知道这就是没有样本输出的答案。@squiguy:没有黑魔法,我只是运行了答案中提供的代码,并得出了类似于此输出的结果。Priti:SO中的人似乎更喜欢完整的答案,而不仅仅是指向答案的指针,我不知道这是好是坏:-我还添加了一个FP实现,我不喜欢强制性的解决方案,除非性能是个问题。@priti:这是我3到4次看到你批评提交了被接受答案的人。抱怨社区对你自己的答案投了更高的票/接受了另一个答案并不构成正当的理由。