打印文件中最长的一行 Ruby
Print longest line out of a file Ruby
我正在尝试打印文件 'words' 中最长的一行,该文件包含一个单词列表(每个单词占一行)。
使用下面的代码,我可以打印比前一行长的每一行。但是,我需要它来打印整个文件中最长的一行。
我对 Ruby 还是个新手,我似乎无法在 google 上找到答案。
max = 0
IO.foreach('words') do |line|
if line.length > max
max = line.length
print line
end
end
非常感谢您的帮助。
您需要记录最长的一行,并且只在完成后打印。
像这样:
max = 0
longest = ""
IO.foreach('words') do |line|
if line.length > max
max = line.length
longest = line
end
end
print longest
一种更简洁且 Ruby 式的方法是
puts IO.foreach('words').max_by(&:length)
我正在尝试打印文件 'words' 中最长的一行,该文件包含一个单词列表(每个单词占一行)。 使用下面的代码,我可以打印比前一行长的每一行。但是,我需要它来打印整个文件中最长的一行。
我对 Ruby 还是个新手,我似乎无法在 google 上找到答案。
max = 0
IO.foreach('words') do |line|
if line.length > max
max = line.length
print line
end
end
非常感谢您的帮助。
您需要记录最长的一行,并且只在完成后打印。
像这样:
max = 0
longest = ""
IO.foreach('words') do |line|
if line.length > max
max = line.length
longest = line
end
end
print longest
一种更简洁且 Ruby 式的方法是
puts IO.foreach('words').max_by(&:length)