-- 6. 实现一个 replaceWords(s, dict),支持根据字典批量替换单词。
-- 输入:"Lua is fun", {Lua="C#", fun="great"}
-- 输出:"C# is great"
Lualocal function replaceWords(s, dict) local newStr = s local count = 0 for i, v in pairs(dict) do newStr,count = newStr:gsub(i, v) end return newStr end-- 7. 将驼峰命名(camelCase)转换为下划线命名(camel_case)
Lualocal function renameToUnderLine(s) local newStr, count = s:gsub("%u", function(ch) return "_" .. ch:lower() end) return newStr end print(renameToUnderLine("camelCase"))-- 8. 实现一个函数,将字符串中的所有数字替换成相同数量的 *。
-- 输入:"Lua123Code"
-- 输出:"Lua***Code"
Lualocal function numberToStar(s) if type(s) ~= "string" then print("请输入字符串,拜托!!!") return nil end local s = s:gsub("%d", "*") return s end print(numberToStar("Lua123Code"))-- 9. 编写函数,将字符串中的中文数字(一二三四)转为阿拉伯数字(1234)。
Lualocal Chinesetbl = { "一", "二", "三", "四", "五", "六", "七", "八", "九", [0] = "零"} local function matchChineseToNumber(s) if type(s) ~= "string" then print("请输入字符串,拜托!!!") return nil end for i, v in pairs(Chinesetbl) do s = s:gsub(v, i) end return s end print(matchChineseToNumber("一二零三四"))-- 10. 实现一个函数,反转字符串中每个单词的位置,但保持单词内部字母顺序不变。
Lualocal function reversedStr(s) if type(s) ~= "string" then print("请输入字符串,拜托!!!") return nil end local resultTable = {} local mod = "%w+" for part in s:gmatch(mod) do table.insert(resultTable, part) end local resultTableCount = #resultTable local middleNumber = math.floor(resultTableCount / 2) for i = 1, middleNumber do resultTable[i], resultTable[#resultTable + 1 - i] = resultTable[#resultTable + 1 - i], resultTable[i] end return table.concat(resultTable, " ") end print(reversedStr("halo")) print(reversedStr("Lua is fun"))
【Lua】题目小练14
大飞pkz2025-09-04 10:19
相关推荐
鹏易灵16 分钟前
C++——8.移动语义初探(移动构造、移动赋值)2601_9623413028 分钟前
计算机毕业设计之jsp考研在线复习平台凯瑟琳.奥古斯特30 分钟前
力扣1008:前序重建BST会周易的程序员42 分钟前
使用 LuaBridge 封装 C++ 日志库 microLog 为 Lua 模块2zcode1 小时前
项目文档:基于MATLAB图像处理的饮料瓶灌装液位检测系统设计与实现月疯1 小时前
np.where()[0]的用法z落落1 小时前
C#五大加密算法(AES、DES、MD5、RSA、SHA)namexingyun1 小时前
Scaling Law bug实战启示:从“虚胖“到“精瘦“的算力效率革命hnxaoli1 小时前
统信小程序(十六)xls转xlsx孝顺的书包2 小时前
将《C# 调用非托管程序》一文中最后一种方法修改如下(篇幅原因简化了注释):