mar*_*875 4 ruby newline line file-read chomp
我正试图摆脱括号[]
和新线的\n
印刷.
我的代码看起来像:
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
Run Code Online (Sandbox Code Playgroud)
我希望输出看起来像JoshBobbyGreen
.但是,它看起来像:
[\"Josh\\n\"][\"Bobby\\n\"][\"Green\\n\"]
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用.gsub
,chomp
并split
但也许我使用他们错了.
小智 22
还要考虑 File.readlines 中的可选 chomp 参数
File.readlines("/path/to/file", chomp: true)
Run Code Online (Sandbox Code Playgroud)
Kho*_*oga 10
puts在输出结尾添加换行符.打印没有.使用打印.它可以解决您的问题.另外,使用.strip.
"\tgoodbye\r\n".strip #=> "goodbye"
Run Code Online (Sandbox Code Playgroud)
您的代码存在一个小问题,导致您遇到这样的结果。
当你使用:
name1 = File.readlines('first.txt').sample(1)
Run Code Online (Sandbox Code Playgroud)
返回的值不是字符串,而是具有 1 个随机样本的数组。IE:
["Jhon"]
Run Code Online (Sandbox Code Playgroud)
["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]
Run Code Online (Sandbox Code Playgroud)
或者:
name1 = File.readlines('first.txt').sample(1).pop
name2 = File.readlines('middle.txt').sample(1).pop
name3 = File.readlines('last.txt').sample(1).pop
Run Code Online (Sandbox Code Playgroud)
或者,可能是您的意思,不带参数,sample
将返回一个对象而不是数组:
name1 = File.readlines('first.txt').sample
name2 = File.readlines('middle.txt').sample
name3 = File.readlines('last.txt').sample
Run Code Online (Sandbox Code Playgroud)
另外,在打印时,如果您创建一个字符串来包含您想要的所有空格和格式,那就更好了。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}."
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11325 次 |
最近记录: |