5.字符串操作

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"

注意:

  1. 字符串的公共方法一般不会改变原字符串
  2. 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

×

喜欢就点赞,疼爱就打赏