【Lua语法】字符串操作、字符串中的方法

1.对字符串的操作

lua 复制代码
--声明一个字符串
str = "我是一个字符串"

--1.获取字符串的长度
--    前面加个#即可(注意:Lua中字母占1个长度,汉字占3个长度)
print(#str)


--2.字符串多行打印
--    方法1.Lua中是支持转义字符的
print("哈哈\n嘻嘻")
--    方法2.[[]]
str2 = [[
我是第一行
我是第二行
]]
print(str)


--3.字符串拼接
--    方法1.用..拼接,而不是 +
print("哈哈" .. "嘻嘻")
--    方法2.string.format()函数
--    %d 与数字拼接
--    %a 与任何字符拼接
--    %s 与字符配对
--    等等...
print(string.format("剩余%d生命值", 99))


--4.其他类型转字符串
--    print的同时它也自动转换了,没必要再print中转换
a = true
print(tostring(a))

2.字符串中提供的公共方法

注意:这些方法不会改变原字符串,只会返回一个新字符串

lua 复制代码
--1.小写转大写、大写转小写
--    不会改变原字符串,只会返回一个新字符串
str = "aBcDEfg"
print(string.upper(str))
print(string.lower(str))


--2.反转字符串
print(string.reverse(str))


--3.查找索引
--    参数1 从哪里找?
--    参数2 找谁?
--    注意 1.Lua中索引是从1开始的
--         2.Lua中可以有多个返回值
print(string.find(str, "Bc"))


--4.截取字符串
--    参数1 截取谁?
--    参数2 从第几个开始截取
print(string.sub(str, 3)) --结果为"cDEfg"
--    重载 从哪里截取到哪里?
print(string.sub(str, 3, 5)) --结果为"cDE"


--5.字符串重复
--    重复谁?
--    重复几遍?
print(string.rep(str, 2))


--6.字符串修改
--    参数1 修改哪个变量
--    参数2 修改哪几个字符
--    参数3 改成什么?
--    返回值中有个数字,它的意思是字符串中有多少个要修改的地方
print(string.gsub(str, "Bc", "哈哈")) --结果为"a哈哈DEfg"     "1"


--7.字符和ASCII码相互转换
--    参数1 转哪个字符串?
--    参数2 把第几个字符转成ASCII码?
print(string.byte("Lua", 1)) --结果为76
--    ASCII码转字符
print(string.char(76)) --结果为"L"
相关推荐
2601_962885725 小时前
如何用 Python 自动识别股票的支撑位与压力位?
开发语言·python
爱吃奥利奥_wen5 小时前
面向对象三板斧:封装、继承、多态,到底在“装“什么、“承“什么、“变“什么?
开发语言·经验分享·c#
我可能是个假开发5 小时前
FTP Unicode 文件名导致 `550` 的问题分析与解决方案
java·开发语言·spring
WL学习笔记6 小时前
日期类(C++)
开发语言·c++·日期类实现
谢亮_vipxieliang7 小时前
Go map与结构体的正确使用
开发语言·golang·哈希算法
H.莓飛7 小时前
【C++】命名空间、缺省参数、函数重载与引用
linux·开发语言·c++·visual studio
xxwl5857 小时前
数据结构知识点和代码实现总结(C语言实现)
c语言·开发语言·数据结构
code2cat10 小时前
Java进阶篇之AtomicMarkableReference:引用还在,标记已经改变
java·开发语言·cas·并发编程·逻辑删除
CappuccinoRose11 小时前
FormData数据处理
开发语言·前端·javascript·表单数据
Zguigo11 小时前
【CUDA8】第一个CUDA C++ Kernel --vector add
java·开发语言·c++