Lua中的数字字符串包装

有人能够说明一下如何在 lua 中包装字符串吗?例如,我有一个字符串 123 234 345 456 567 788 890 098 678 854 531 489,我想将其分成两行:

 123 234 345 456 567 788 890 098
 678 854 531 489

谢谢

点赞
用户8034149
用户8034149

Lua有和其他编程语言一样的转义字符:\n

numbers = "123 234 345 456 567 788 890 098\n678 854 531 489"
>123 234 345 456 567 788 890 098
 678 854 531 489
2017-06-26 20:58:13
用户1847592
用户1847592

如何将任意字符串包装成多列:

local char_pattern = ".[\128-\191]*"  -- 用于 UTF-8 文本
-- local char_pattern = "."           -- 用于 1 字节编码

local function wrap(text, width)
   local tail, lines = text.." ", {}
   while tail do
      lines[#lines + 1], tail = tail
         :gsub("^%s+", "")
         :gsub(char_pattern, "\0%0\0", width)
         :gsub("%z%z", "")
         :gsub("(%S)%z(%s)", "%1%2\0")
         :gsub("^(%z[^\r\n%z]*)%f[%s](%Z*)%z(.*)$", "%1\0%2%3")
         :match"^%z(%Z+)%z(.*)$"
   end
   return table.concat(lines, "\n")
end

-- 示例:
print(wrap("123 234 345 456 567 788 890 098 678 854 531 489", 32))
-- 输出:
-- 123 234 345 456 567 788 890 098
-- 678 854 531 489
2017-06-27 15:40:03