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
相关推荐
鄃鳕6 分钟前
python迭代器解包【python】
开发语言·python
new coder6 分钟前
[c++语法学习]Day10:c++引用
开发语言·c++·学习
驰羽12 分钟前
[GO]GORM 常用 Tag 速查手册
开发语言·后端·golang
Narcissiffo21 分钟前
【C语言】str系列函数
c语言·开发语言
workflower25 分钟前
软件工程与计算机科学的关系
开发语言·软件工程·团队开发·需求分析·个人开发·结对编程
ajsbxi27 分钟前
【Java 基础】核心知识点梳理
java·开发语言·笔记
阿珊和她的猫39 分钟前
深入理解与手写发布订阅模式
开发语言·前端·javascript·vue.js·ecmascript·状态模式
懷淰メ1 小时前
python3GUI--模仿百度网盘的本地文件管理器 By:PyQt5(详细分享)
开发语言·python·pyqt·文件管理·百度云·百度网盘·ui设计
新子y1 小时前
【小白笔记】普通二叉树(General Binary Tree)和二叉搜索树的最近公共祖先(LCA)
开发语言·笔记·python
重整旗鼓~1 小时前
28.redisson源码分析分布式锁
java·开发语言