在ruby中将两个字符串过滤为1的最佳方法

Rob*_*ews 3 ruby arrays loops filter hidden-field

我试图找出一种方法来过滤两个数组到一个基于猜测他们内的字母..所以基本上刽子手.但如果我有

word_array = ["b", "u", "s", "b", "o", "i"]
hidden_array = Array.new(word_array.length, "-")

p hidden_array
Run Code Online (Sandbox Code Playgroud)

如果猜测到"b",我想打印到控制台["b"," - "," - ","b"," - "," - "].什么是一个很好的初学者方式来创建这个将随时间变化的数组?它应该是哈希吗?谢谢!

tad*_*man 6

到目前为止,所有解决方案都围绕着数组,但不要忘记字符串基本上是一个字符数组.只需使用字符串:

word = 'busboi'
guesses = 'bs'

word.tr('^'+guesses, '-')
# => "b-sb--"
Run Code Online (Sandbox Code Playgroud)

String#tr方法将第一个参数中的所有字母转换为第二个参数中的映射,因此您可以执行ROT13,简单加密等操作,或者在这种情况下使用否定功能^反转第一个集合并替换所有不匹配的字符.