5.字符串操作
5.1 知识点
知识回顾
- 声明字符串
str1 = "双引号字符串"
str2 = '单引号字符串'
#获取字符串长度
- 一个汉字占3个长度
- 英文字符 占1个长度
str1 = "aBcdEfG字符串"
--一个汉字占3个长度
--英文字符 占1个长度
print(#str1)--16
字符串多行打印
- lua支持转义字符换行来多行打印
print("123\n123")
输出:
123
123
- 也可以使用[[]]包裹字符串多行打印
str1 = [[
我是
韬
]]
print(str1)
输出:
我是
韬
..和string.format方法进行字符串拼接
- ..字符串拼接
print( "123" .. "456" ) -- 123456
str1 = 111
str2 = 222
print(str1 .. str2) -- 111222
- 字符串拼接方法string.format 传入字符串和占位符字符串拼接
- %d :与数字拼接
- %a:与任何字符拼接
- %s:与字符配对
print(string.format("我是韬老狮,我今年%d岁了", 18))
tostring方法让别的类型转字符串
- tostring方法 传入其他类型的变量
a = true
print(tostring(a)) -- true
字符串的公共方法
拿str1作为例子
str1 = "abCdefgCd"
注意:
- 字符串的公共方法一般不会改变原字符串
- lua的索引是从1开始的
小写转大写方法string.upper 传入字符串
print(string.upper(str1)) -- ABCDEFGCD
大写转小写方法string.upper 传入字符串
print(string.lower(str1)) -- abcdefgcd
翻转字符串方法string.reverse 传入字符串
print(string.reverse(str1)) -- dCgfedCba
字符串索引查找方法string.find 传入字符串和要查找的字符串 会返回起始和结束索引
print(string.find(str1, "Cde")) -- 3 5
截取字符串方法string.sub 传入字符串和起始结束索引 不传结束索引默认到传入的字符串尾
print(string.sub(str1, 3)) -- CdefgCd
print(string.sub(str1, 3, 4)) -- Cd
字符串重复方法string.rep 传入字符串和重复次数
print(string.rep(str1, 2)) -- abCdefgCdabCdefgCd
字符串修改方法string.gsub 传入要修改的字符和替换后的字符 返回修改后的字符串和修改了几处
print(string.gsub(str1, "Cd", "**")) -- ab**efg** 2
字符转ASCII码方法string.byte 传入字符串和要转ASCII码的字符索引
str1 = string.byte("Lua", 1) -- 转换L为ASCII码
print(str1) -- 76
ASCII码转字符方法string.char 传入字符串
print(string.char(str1)) -- L
5.2 知识点代码
print("**********字符串操作************")
print("**********知识回顾************")
--声明字符串
str1 = "双引号字符串"
str2 = '单引号字符串'
print("**********知识点一 获取字符串长度************")
str1 = "aBcdEfG字符串"
--一个汉字占3个长度
--英文字符 占1个长度
print(#str1)--16
print("**********知识点二 字符串多行打印************")
--lua支持转义字符换行来多行打印
print("123\n123")
-- 123
-- 123
--也可以使用[[]]包裹字符串多行打印
str1 = [[
我是
韬
]]
print(str1)
-- 我是
-- 韬
print("**********知识点三 字符串拼接************")
--..字符串拼接
print( "123" .. "456" )--123456
str1 = 111
str2 = 222
print(str1 .. str2)--111222
--字符串拼接方法string.format 传入字符串和占位符字符串拼接
--%d :与数字拼接
--%a:与任何字符拼接
--%s:与字符配对
print(string.format("我是韬老狮,我今年%d岁了", 18))
print("**********知识点四 别的类型转字符串************")
--tostring方法 传入其他类型的变量
a = true
print(tostring(a))--true
print("**********知识点五 字符串的公共方法************")
str1 = "abCdefgCd"
--注意
--字符串的公共方法一般不会改变原字符串
--lua的索引是从1开始的
--小写转大写方法string.upper 传入字符串
print(string.upper(str1))--ABCDEFGCD
--大写转小写方法string.upper 传入字符串
print(string.lower(str1))--abcdefgcd
--翻转字符串方法string.reverse 传入字符串
print(string.reverse(str1))--dCgfedCba
--字符串索引查找方法string.find 传入字符串和要查找的字符串 会返回起始和结束索引
print(string.find(str1, "Cde"))--3 5
--截取字符串方法string.sub 传入字符串和起始结束索引 不传结束索引默认到传入的字符串尾
print(string.sub(str1, 3))--CdefgCd
print(string.sub(str1, 3, 4))--Cd
--字符串重复方法string.rep 传入字符串和重复次数
print(string.rep(str1, 2))--abCdefgCdabCdefgCd
--字符串修改方法string.gsub 传入要修改的字符和替换后的字符 返回修改后的字符串和修改了几处
print(string.gsub(str1, "Cd", "**"))--ab**efg** 2
--字符转ASCII码方法string.byte 传入字符串和要转ASCII码的字符索引
str1 = string.byte("Lua", 1)--转换L为ASCII码
print(str1)--76
--ASCII码转字符方法string.char 传入字符串
print(string.char(str1))--L
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com