Lua:特定长度的字符串

时间:2018-10-23 07:33:17

标签: string lua string-length

local data = "here is a string"
local no = 12
foo = string.format("%50s %05d",data,no)
print(foo:len(),string.format("%q",foo))

foo定义为特定长度的字符串

"                                  here is a string 00012"

但是,有没有一种简单方法来获取

"here is a string                                   00012"

我知道,我可以用空格填充字符串data

while data:len() < 50 do data = data.." " end

1 个答案:

答案 0 :(得分:3)

添加负号以格式化字符串%-50s,以使文本向左对齐:

foo = string.format("%-50s %05d","here is a string", 12)
print(foo:len(), foo)

输出:

56  here is a string                                   00012

允许的标志:

- : left align result inside field
+ : always prefix with a sign, using + if field positive
0 : left-fill with zeroes rather than spaces
(space) : If positive, put a space where the + would have been
# : Changes the behaviour of various formats, as follows:
  For octal conversion (o), prefixes the number with 0 - if necessary.
  For hex conversion (x), prefixes the number with 0x
  For hex conversion (X), prefixes the number with 0X
  For e, E and f formats, always show the decimal point.
  For g and G format, always show the decimal point, and do not truncate trailing zeroes.
  The option to 'always show the decimal point' would only apply if you had the precision set to 0.