使用string.gsub在Lua中格式化表格。
2015-8-9 14:35:38
收藏:0
阅读:124
评论:2
以下代码将表格格式化为可打印的字符串,但我觉得这可以更容易地完成。
function printFormat(table)
local str = ""
for key, value in pairs(table) do
if value == 1 then
str = str .. string.gsub(value, 1, "A, ") -- 将1替换为A
elseif value == 2 then
str = str .. string.gsub(value, 2, "B, ") -- 将2替换为B
elseif value == 3 then
str = str .. string.gsub(value, 3, "C, ") -- 将3替换为C
elseif value == 4 then
str = str .. string.gsub(value, 4, "D, ") -- 将4替换为D
end
end
str = string.sub(str, 1, #str - 2) -- 删除末尾无用的字符(最后一个逗号和最后一个空格)
str = "<font color=\"#FFFFFF\">" .. str .. "</font>" -- 为字符串着色
print(str)
end
local myTable = {1,4,3,2,3,2,1,3,4,2,2,...}
printFormat(myTable)
有没有办法使用一行代码来代替必须循环遍历每个指数并进行更改的方法?
或者使代码更简洁?
点赞
用户1190388
- 使用
table.concat。 string.gsub可以使用替换表进行替换。- 不要将类似
table这样的名称用于自己的变量中。
因此:
function printFormat( tInput )
local sReturn = table.concat( tInput, ', ' )
sReturn = sReturn:gsub( '%d', {['1'] = 'A', ...} ) -- 根据需要更新表格
return '<font color="#FFFFFF">' .. str .. "</font>"
end
而且,对于一行代码:
return '<font color="#FFFFFF">' .. ( table.concat(tInput, ', ') ):gsub( '%d', {['1'] = 'A', ...} )
2015-08-09 15:15:16
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
你可以使用一个辅助表来替代多个
if语句:local chars = {"A", "B", "C", "D"} for _, v in ipairs(t) do str = str .. chars[v] .. ", " end或者,如果是
1到4以外的数字,可以尝试以下方法:for _, v in ipairs(t) do str = str .. string.char(string.byte('A') + v) .. ", " end