我想在字符串的每个可能索引处插入一个字符,包括在第一个元素之前和最后一个元素之后.现在我正在做:
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
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以做到这一点,没有2个特殊情况,并有一个从0到0的循环 str.length - 2
编辑
使用' - '和'hello'输出示例:
["-hello", "h-ello", "he-llo", "hel-lo", "hell-o", "hello-"]
Run Code Online (Sandbox Code Playgroud)
我假设你想要["-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-"]
Run Code Online (Sandbox Code Playgroud)
对于那些喜欢功能性方法的人(我这样做):
(0..s.size).map { |i| (s[0...i] + "-" + s[i..-1]) }
#=> ["-hello", "h-ello", "he-llo", "hel-lo", "hell-o", "hello-"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
73 次 |
| 最近记录: |