Lua语言中常用的字符串操作函数

string.sub(s, i, j)

  • 功能 : 截取字符串 s 中从位置 i 到位置 j 的子字符串。

Lua 复制代码
local s = "Hello, Lua!"
print(string.sub(s, 1, 5))  -- 输出 "Hello"
print(string.sub(s, 8, 11)) -- 输出 "Lua!"

string.len(s)

功能:将字符串长度返回,如果换行符没有明显写出来,就不会加入计算,如果说换行符已经明显写出来了,那么要加入计算,比如下面如果写了"hello, lua!\n",那么这时候就有12个字符

Lua 复制代码
local s = "Hello, Lua!"
print(string.len(s))  -- 输出 11

string.lower(s)

将字符串转换成小写

Lua 复制代码
local s = "Hello, Lua!"
print(string.lower(s))  -- 输出 "hello, lua!"

string.upper(s)

将字符串转换成大写

Lua 复制代码
local s = "Hello, Lua!"
print(string.upper(s))  -- 输出 "HELLO, LUA!"

string.find(s, pattern)

功能:这个函数是用来查找函数中的字符串,参数是字符串和要查找的字符,有两个返回值,是一个区间范围,即查找到字符串的(开始位置-结束位置),如果没有找到,就返回nil

Lua 复制代码
local s = "Hello, Lua!"
local start, finish = string.find(s, "Lua")
print(start, finish)  -- 输出 8 10

string.match(s, pattern)

功能:这个函数是用来查找指定字符串,返回值就是查找到的字符串,如果没有查找到,就返回nil

Lua 复制代码
local s = "Hello, Lua!"
local result = string.match(s, "Lua")
print(result)  -- 输出 "Lua"

string.gsub(s, pattern, repl)

功能:把指定字符串当中的某个字符串替换成想要替换的新字符串,返回值有两个,一个是返回被替换之后的整个字符串,一个是字符串当中被替换掉的次数

Lua 复制代码
local s = "Hello, Lua!"
local result, count = string.gsub(s, "Lua", "World")
print(result)  -- 输出 "Hello, World!"
print(count)   -- 输出 1

string.rep(s, n)

将字符串重复指定次数

Lua 复制代码
local s = "Lua"
print(string.rep(s, 3))  -- 输出 "LuaLuaLua"

string.reverse(s)

将字符串反转

Lua 复制代码
local s = "Hello, Lua!"
print(string.reverse(s))  -- 输出 "!auL ,olleH"

string.format(format, ...)

格式化字符串,相当于c中的printf

Lua 复制代码
local name = "Lua"
local version = 5.4
print(string.format("Welcome to %s %0.1f!", name, version))  -- 输出 "Welcome to Lua 5.4!"

string.char(...)

功能: 将整数转换为对应的字符。f f f

Lua 复制代码
print(string.char(72, 101, 108, 108, 111))  -- 输出 "Hello"

string.byte(s, i, j)

返回字符串 s 中从位置 i 到位置 j 的字符的 ASCII 码。

Lua 复制代码
local s = "Hello"
print(string.byte(s, 1, 3))  -- 输出 72 101 108

string.gmatch(s, pattern)

功能 : 返回一个迭代器,用于遍历字符串 s 中所有匹配 pattern 的子字符串

Lua 复制代码
local s = "Hello, Lua!"
for word in string.gmatch(s, "%a+") do
    print(word)
end
-- 输出:
-- Hello
-- Lua
相关推荐
墨云安全21 分钟前
内网资产无法暴露到公网,怎么做安全检测?2026 年内网渗透测试的落地路径
开发语言·安全·网络安全·渗透测试·php
摇滚侠38 分钟前
《计算机是如何工作的:人人都能懂的计算机软硬件工作原理》第 9 章 机器码与汇编语言 阅读笔记 9
java·开发语言·笔记
Cc.Y1 小时前
Java零基础入门:深入Java核心:文件IO与序列化全解
java·开发语言·python
jimy12 小时前
c++的 Type Traits (一)
开发语言·c++
Web极客码3 小时前
Python Ollama 本地 Agent 入门与订单查询实践
开发语言·jvm·python
kimnoic3 小时前
PHP 8.2的DNF类型怎么用才规范
开发语言·php
_Evan_Yao4 小时前
前后端联调怎么排查问题?从 Network 到后端日志,一步步定位错误
开发语言·后端·团队开发·需求分析
hudd6684 小时前
JavaEE 初阶 - 多线程(进阶)
java·开发语言·java-ee
小白快快跑哦4 小时前
python-字符串全解(六):正则表达式-前后相断言
开发语言·python·正则表达式·前后相断言
kimnoic4 小时前
Python数据分析中正则表达式匹配字符串与常用函数示例详解
开发语言·python