随机替换单词中的字母

Kub*_*k92 -1 ruby

我试着写一个函数,它能够随机改变单词中的字母,除了第一个和最后一个.

def fun(string)
z=0
s=string.size
tab=string
a=(1...s-1).to_a.sample s-1
    for i in 1...(s-1)
        puts tab[i].replace(string[a[z]])
        z=z+1
    end
    puts tab
end
fun("sample")
Run Code Online (Sandbox Code Playgroud)

我的输出是:

p
l
a
m
sample
Run Code Online (Sandbox Code Playgroud)

有人知道如何使我的标签正确吗?它似乎改变了阻止,因为在输出中是"plamp"所以它是随机的,因为我想要但如果我想打印整个单词(splampe)它不起作用.:(

Ste*_*fan 5

关于什么:

def fun(string)
  first, *middle, last = string.chars
  [first, middle.shuffle, last].join
end

fun("sample") #=> "smalpe"
Run Code Online (Sandbox Code Playgroud)