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

1.对字符串的操作

--声明一个字符串
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.字符串中提供的公共方法

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

--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"

猜你喜欢

转载自blog.csdn.net/SEA_0825/article/details/131967778