Lua Exercise
Lua实战技巧
fightsyj
任时光流转,仍初心不忘!
展开
-
Lua实战之以非科学记数法输出小数
Description现有小数 n,我们知道,当 n < 0.0001 时会以科学计数法输出,例如:local n = 0.0000999print(n) -- 9.99e-005由于不少人对科学计数法并不熟悉,所以还是希望以非科学计数法输出,如何实现?Implementionfunction printDecimal(n) if type(n) ~= "number" then return tostring(n) end if n原创 2021-09-14 21:15:07 · 1120 阅读 · 0 评论 -
Lua实战之布尔值(boolean)排序
Description将 targetTbl 按 bValue 进行排序(true > false),bValue 相同则按 id 进行顺序(有小到大)排序!local targetTbl = { {id = 1, bValue = false}, {id = 2, bValue = true}, {id = 3, bValue = true}, {id = 4, bValue = false}, {id = 5, bValue = true}}Implemention原创 2021-06-21 21:45:43 · 1208 阅读 · 0 评论 -
Lua实战之密码验证
验证标准:密码必须包含数字、字母(不区分大小写)和特殊字符,长度为8-16位!function checkPwd(pwd) if #pwd == 0 then print("密码不能为空") return false end if #pwd < 8 or #pwd > 16 then print("密码长度为8-16位") return false end local numberCnt, letterCnt, specialCnt, otherCnt = .原创 2021-03-02 20:33:43 · 2167 阅读 · 2 评论 -
Lua实战之不使用循环逆序输出一个数组
Description在不使用循环,不逐一赋值的前提下,逆序输出一个数组。e.g.数组:{1,2,3,4,5}输出:54321Implemention方案:使用递归local tbl = {1, 2, 3, 4, 5}function reversePrint(key) print(tbl[key]) if key == 1 then return end return reversePrint(key - 1)endreversePrint(...原创 2020-11-17 14:12:30 · 1711 阅读 · 7 评论 -
Lua实战之number转带单位的字符串(万、亿)
Description将number类型的数字转成指定格式的字符串!规则如下: 最多保留两位小数(舍去从第三位小数开始的值); 大于等于1万,以万为单位。大于等于1亿,以亿为单位。 e.g.0.009->0-88.8->-88.8123.456->123.45-888.888->-888.881234000->123.4万-8888888->-888.88万12300000000->...原创 2020-08-04 20:13:33 · 1455 阅读 · 0 评论 -
Lua实战之拆分整数
Description将指定的数字按规则由大到小拆分成多个更小的数!e.g.被拆分的数字:23拆分规则:{1,2,3}拆分结果:7个1,1个2Implementionfunction splitNum(targetNum, ruleTbl) if #ruleTbl == 0 then return targetNum end for i = #r...原创 2020-04-19 18:56:56 · 1290 阅读 · 0 评论 -
Lua实战之整体移动table中的元素
DescriptiontestTbl={1,2,3,4,5,6}将 testTbl 看做首尾元素相邻的环,请实现将表中所有元素向前移动 n 个位置!e.g.n=1移动之后的结果为:{2,3,4,5,6,1}n=2移动之后的结果为:{3,4,5,6,1,2}Implementionlocal LogManager = req...原创 2020-03-12 16:17:06 · 1750 阅读 · 0 评论 -
Lua实战之洗牌算法
Description打乱指定table中的元素!Implemention-- 设置随机数种子math.randomseed(tonumber(tostring(os.time()):reverse():sub(1,6)))-- 洗牌算法function shuffle(targetTbl) local tblLen = #targetTbl while(tb...原创 2019-10-15 09:53:17 · 1127 阅读 · 0 评论 -
Lua实战之统计字符串中任意字符出现的次数
Description求出指定字符串中任意字符出现的次数!e.g.指定字符串:"Hello World!""H"出现1次,"e"出现1次,"l"出现3次,"o"出现2次,"W"出现1次,"r"出现1次,"d"出现1次,空格出现1次,"!"出现1次!Implementionlocal LogManager = require("LogManager")local testSt...原创 2019-08-03 17:36:55 · 4019 阅读 · 0 评论 -
Lua实战之判断连续
目录DescriptionImplementionPlan APlan BDescription判断表中的数是否连续,0可以代表任意数!e.g.{5, 8, 0, 1, 4, 2, 0, 6}是连续的!ImplementionPlan Alocal testTbl1 = {5, 8, 0, 1, 4, 2, 0, 6}function jungle...原创 2019-08-03 15:11:55 · 1013 阅读 · 0 评论 -
Lua实战之table.remove
Descriptionlocal tbl1 = {1, 2, 2, 3, 3, 3, 4, 5, 5, 5, 6}local tbl2 = {1, 2, 3, 3, 5, 6}删除tbl1中存在于tbl2中的元素,使删除之后tbl1的值为:{2, 3, 4, 5, 5}Implementionlocal LogManager = require("LogManager")...原创 2019-07-06 10:54:12 · 636 阅读 · 0 评论 -
Lua实战之table去重
在开发过程中,有时候会遇到需要对table中的元素进行去重的情况,就是说如果table中有多个相同的元素,只保留一个!直接上代码:local targetTbl = {1, 1, 2, 3, 3, 3, 4, 5, 5} -- 需要去重的目标tabledump(targetTbl, "targetTbl")--[[- "targetTbl" = {- 1 = 1- ...原创 2018-12-28 20:04:14 · 7359 阅读 · 0 评论