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
相关推荐
程序猿乐锅13 分钟前
万字详解Single-flight(单飞模式)
java·开发语言·分布式·后端·学习·single-flight
揽星河..2 小时前
【C语言】指针
c语言·开发语言
小小数媒成员2 小时前
UGUI原理(一)
开发语言·游戏·unity·游戏引擎
速易达网络2 小时前
Three.js 动画入门教学:从场景搭建到流畅动效
开发语言·javascript·ecmascript
福大大架构师每日一题2 小时前
excelize v2.11.1发布:Go 1.26.0起步,16项安全修复与嵌入对象能力全面升级
开发语言·安全·golang
Sarvartha2 小时前
集合概述 & Collection 接口
开发语言
lhbweilai3 小时前
QT项目(串口助手)
开发语言·qt
eggwyw3 小时前
C++相交链表和反转链表详解
开发语言·c++
Wang's Blog3 小时前
Java 项目实战:交友项目 - 保存访客记录
java·开发语言·交友
Raas1004 小时前
AI网关如何接入?MAI Gateway部署实操教程
java·开发语言·人工智能·gateway·ai网关·mai gateway·企业级产品