我正在生成一个脚本,将信息输出到控制台.信息是一种有价值的统计数据.就像一个杂烩.

所以一个值的名称可能是8个字符长,另一个是3个字符长.当我循环输出带有两个\t的信息时,有些列没有正确对齐.

例如,输出可能是这样的:

long value name          14
short              12
little             13
tiny               123421
long name again          912421

我希望所有的值都正确排列.现在我正在做这件事:

puts "#{value_name} - \t\t #{value}"

我怎么能说长名字,只使用一个标签?还是有其他解决方案?

推荐答案

There is usually a %10s kind of printf scheme that formats nicely.
However, I have not used ruby at all, so you need to check that.


Yes, there is printf with formatting.
The above example should right align in a space of 10 chars.
You can format based on your widest field in the column.

printf([端口,]格式,参数…)

根据sprintf格式打印参数.如果第一个参数是IO或其子类的实例,请将print重定向到该对象.默认值为$stdout.

Ruby相关问答推荐

是什么导致游戏对象中的命名错误?

为什么 rdoc 注释似乎以两个井号/井号符号开头?

Ruby - 将两个哈希与一些相似的键合并

ruby:rubocop 抱怨将 if else 转换为 case 语句

在 Go (golang) 中编写一个 Ruby 扩展

带有索引的 Ruby `each_with_object`

如何在Ruby中从字符串中go 除前导和尾随引号

Ruby 连接字符串并添加空格

在文件中搜索字符串的最佳方法是什么?

确定字符串数组是否包含ruby中的某个子字符串

Ruby 设计模式:如何制作可扩展的工厂类?

RSpec allow/expec vs expect/and_return

如何在 RSpec 2 中自动加载 spec_helper.rb

文字数字中的下划线是什么意思?

Ruby 中的标准文件命名约定

在 Ruby 中计算中位数

rbenv install --list 不列出 2.1.2 版本

如何使用 link_to Ruby on rails 添加确认消息

如果公司使用 C++、C# 或 Java 作为应用程序语言,为什么要学习 Perl、Python、Ruby?

你可以在Ruby中使用分号吗?