ruby - 在Ruby中读取文件时如何删除换行符

我正试图去掉括号和新行。
我的代码看起来像:

name1 = File.readlines('first.txt').sample(1)
name2 = File.readlines('middle.txt').sample(1)
name3 = File.readlines('last.txt').sample(1)

name = print (name1.strip 
    print name2.strip 
    print name3.strip)

puts name

我希望输出看起来像[]
然而,它看起来像:
[\"Josh\\n\"][\"Bobby\\n\"][\"Green\\n\"]

我试过使用\nJoshBobbyGreen.gsub但是也许我用错了。

最佳答案

您的代码有一个小问题,导致您遇到的结果。
使用时:

name1 = File.readlines('first.txt').sample(1)

返回的值不是字符串,而是具有1个随机样本的数组。即:
["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

另外,在打印时,最好创建一个字符串来包含所需的所有空格和格式。即。:
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}."

本文翻译自 https://stackoverflow.com/questions/32803951/

网站遵循 CC BY-SA 4.0 协议,转载或引用请注明出处。

标签 ruby line newline file-read chomp


相关文章:

ruby-on-rails - Vim / command-T:因为未构建扩展名,所以忽略了“ gem-name”。尝试原始的“ gem-name”

python - Python最快的方式来读取大文本文件(几GB)[重复]

java - Java分割字串与空白分隔符

c - Printf打印不需要的换行符[重复]

ruby - 奇数除以2后舍入的原因是什么?

python - 为什么(python | ruby​​)被解释了?

ruby-on-rails - Rails:调用Model.new之后如何将对象保存到模型中?

c++ - OpenGL:仅使用GL_POINTS渲染线

python - 如何在不同的乘法表之间插入换行符?

php - PHP换行符不起作用