【Lua】题目小练14

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

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

-- 输出:"C# is great"

Lua 复制代码
local 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)

Lua 复制代码
local 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"

Lua 复制代码
local 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)。

Lua 复制代码
local 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. 实现一个函数,反转字符串中每个单词的位置,但保持单词内部字母顺序不变。

Lua 复制代码
local 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"))
相关推荐
GIS数据转换器1 小时前
地下空间综合管廊运营管理平台
大数据·开发语言·人工智能·经验分享·perl
Wang's Blog7 小时前
Java 项目实战: 交友项目:登录链路回顾与今日任务地图
java·开发语言·状态模式·交友
砚底藏山河7 小时前
python量化:行情数据回溯
java·开发语言·python·金融·maven
今年下半年7 小时前
AI智能体项目实战记录(02):初始化 Python 项目
开发语言·人工智能·python·fastapi
Williamtym7 小时前
PickGo Lab实践:用浏览器、Python和MCP串起机器人搬运仿真
开发语言·python·机器人
DongQiShanRen8 小时前
六根硬件映射(四):归属澄清、两处不一致与卷十一总表
开发语言·人工智能·算法·rust·哈希算法·集成学习
CS创新实验室8 小时前
Python 对象“死“了之后去了哪?——引用计数与分代垃圾回收
开发语言·jvm·python
quantdash_cc8 小时前
Pandas 处理分钟级股票行情:从原始数据清洗到 K 线聚合
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
yu_zhidun8 小时前
企业电脑监控软件怎么选:别只看功能清单,先看这 6 个底层能力
开发语言·电脑·php·域智盾系统
无忧.芙桃9 小时前
C++语言原理与实践(十六):多态机制讲解
开发语言·c++·多态