您的代码有一个小问题,导致您遇到的结果。
当你使用:
name1 = File.readlines('first.txt').sample(1)
返回的值不是字符串,而是具有 1 个随机样本的数组。IE:
["Jhon"]
这就是为什么您["Jhon"]
在使用print
.
由于您期望(并且更喜欢)一个字符串,请尝试以下操作:
name1 = File.readlines('first.txt').sample(1)[0]
name2 = File.readlines('middle.txt').sample(1)[0]
name3 = File.readlines('last.txt').sample(1)[0]
或者:
name1 = File.readlines('first.txt').sample(1).pop
name2 = File.readlines('middle.txt').sample(1).pop
name3 = File.readlines('last.txt').sample(1).pop
或者,可能是您的意思,没有参数,sample
将返回一个对象而不是数组:
name1 = File.readlines('first.txt').sample
name2 = File.readlines('middle.txt').sample
name3 = File.readlines('last.txt').sample
此外,在打印时,如果您创建一个字符串来包含您想要的所有空格和格式会更好。IE:
name1 = File.readlines('first.txt').sample(1).pop
name2 = File.readlines('middle.txt').sample(1).pop
name3 = File.readlines('last.txt').sample(1).pop
puts "#{name1} #{name2} #{name3}."
# or
print "#{name1} #{name2} #{name3}."