如何使用Ruby反转单词而不是字符?

Gab*_*nor 0 ruby

我想颠倒文本文件的话:

如果我的输入是:

Hello World
Run Code Online (Sandbox Code Playgroud)

我的输出应该是:

World Hello
Run Code Online (Sandbox Code Playgroud)

我试过这个:

File.open('teste.txt').each_line do |line|
  print line.reverse.gsub(/\n/,"")
end
Run Code Online (Sandbox Code Playgroud)

但我把角色颠倒了.

Nie*_* B. 8

"Hello World".split.reverse.join(" ")
=> "World Hello"
Run Code Online (Sandbox Code Playgroud)

它将字符串拆分为一个数组,其中空格是默认分隔符.然后它反转数组并使用空格连接数组中的字符串.

您的解决方案应如下所示:

File.open("test.txt").each_line do |line|
  puts line.split.reverse.join(" ")
end
Run Code Online (Sandbox Code Playgroud)

puts在输出后附加换行符,而print不是.这是必要的,因为split当将它拆分成单词数组时,丢弃每行上的原始换行符.