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
相关推荐
人大博士的交易之路15 分钟前
数据结构算法——python数据结构
开发语言·数据结构·python
Han_han91919 分钟前
面向对象高级 继承(extends):
开发语言·python
前端老石人26 分钟前
邂逅前端开发:从基础到实践的全景指南
开发语言·前端·html
白毛大侠1 小时前
Go Goroutine 与用户态是进程级
开发语言·后端·golang
ForteScarlet1 小时前
从 Kotlin 编译器 API 的变化开始: 2.3.20
android·开发语言·后端·ios·开源·kotlin
elseif1231 小时前
浅谈 C++ 学习
开发语言·c++·学习
SuperEugene1 小时前
Vue3 性能优化规范:日常必做优化(不玄学、可落地)|可维护性与兜底规范篇
开发语言·前端·javascript·vue.js·性能优化·前端框架
Binary-Jeff1 小时前
Spring 创建 Bean 的关键流程
java·开发语言·前端·spring boot·后端·spring·学习方法
Frank_refuel1 小时前
QT->信号与槽详解上(概述、使用、自定义、连接方式、其他说明)
开发语言·qt
深耕AI1 小时前
【VS Code 中 Python 虚拟环境降级完整指南(含 uv 工具实战)】
开发语言·python·uv