当前位置: 首页 > news >正文

【Lua】题目小练14

-- 6. 实现一个 replaceWords(s, dict),支持根据字典批量替换单词。

-- 输入:"Lua is fun", {Lua="C#", fun="great"}

-- 输出:"C# is great"

local function replaceWords(s, dict)local newStr = slocal count = 0for i, v in pairs(dict) donewStr,count = newStr:gsub(i, v)endreturn newStr
end

-- 7. 将驼峰命名(camelCase)转换为下划线命名(camel_case)

local function renameToUnderLine(s)local newStr, count = s:gsub("%u", function(ch) return "_" .. ch:lower()end)return newStr
endprint(renameToUnderLine("camelCase"))

-- 8. 实现一个函数,将字符串中的所有数字替换成相同数量的 *。

-- 输入:"Lua123Code"

-- 输出:"Lua***Code"

local function numberToStar(s)if type(s) ~= "string" thenprint("请输入字符串,拜托!!!")return nilendlocal s = s:gsub("%d", "*")return s
endprint(numberToStar("Lua123Code"))

-- 9. 编写函数,将字符串中的中文数字(一二三四)转为阿拉伯数字(1234)。

local Chinesetbl = { "一", "二", "三", "四", "五", "六", "七", "八", "九", [0] = "零"}local function matchChineseToNumber(s)if type(s) ~= "string" thenprint("请输入字符串,拜托!!!")return nilendfor i, v in pairs(Chinesetbl) dos = s:gsub(v, i)endreturn sendprint(matchChineseToNumber("一二零三四"))

-- 10. 实现一个函数,反转字符串中每个单词的位置,但保持单词内部字母顺序不变。

local function reversedStr(s)if type(s) ~= "string" thenprint("请输入字符串,拜托!!!")return nilendlocal resultTable = {}local mod = "%w+"for part in s:gmatch(mod) dotable.insert(resultTable, part)endlocal resultTableCount = #resultTablelocal middleNumber = math.floor(resultTableCount / 2)for i = 1, middleNumber doresultTable[i], resultTable[#resultTable + 1 - i] = resultTable[#resultTable + 1 - i], resultTable[i]endreturn table.concat(resultTable, " ")
endprint(reversedStr("halo"))
print(reversedStr("Lua is fun"))

http://www.xdnf.cn/news/1442305.html

相关文章:

  • 为什么几行dropout就能显著提升稀疏3DGS渲染质量?
  • 深度学习篇---InceptionNet网络结构
  • 【串口助手】串口调试助手LTSerialTool v3.12.0发布
  • A股大盘数据-2025093分析
  • Java如何实现jar包方法覆盖
  • C语言字符函数和字符串函数(1)
  • TypeScript 与 Java 重载机制对比
  • 08、Linux 安全组开放端口
  • 数据结构:图的表示 (Representation of Graphs)
  • C++完美转发
  • 微信小程序-day3
  • Uniapp中进行微信小程序头像和昵称的更改
  • 20250901 搜索总结
  • 免费专业软件推荐 | 图片/PDF水印添加神器:艾克斯水印工具使用全攻略
  • java中二维数组笔记
  • Git或TortoiseGit的小BUG(可解决):空库报错Could not get hash of ““
  • Nginx中的内置变量、指令、URL重写功能及其虚拟主机配置、负载均衡配置
  • 关于linux编程——网络编程2
  • 工业4.0时代的通信革命:OPC UA Pub/Sub机制全面解析
  • 百万级并发下的微服务架构设计之道:从阿里双11看分布式系统核心原则与落地实践
  • 云计算培训为什么这么贵?
  • EagleTrader观察|你的固定心态,可能正在悄悄让你交易破产
  • Element UI MessageBox 渲染虚拟节点的坑与解决方案
  • 【深度学习新浪潮】用3DGS做三维重建有哪些主要的技术路线可供选择?
  • 【随手记】vscode中C语言满足KR风格的方法
  • Leetcode—695. 岛屿的最大面积【中等】
  • Docker实战指南:从安装到架构解析
  • 【Linux】网络(中)
  • 数据结构:栈和队列(上)
  • 数据结构从青铜到王者第十九话---Map和Set(2)