【Lua】字符串

记录学习过程

创建日期:2019-04-14

字符串

定义:单引号,双引号, [[]](多行字符串)

--转义字符
--\n 换行
--\\代表一个反斜杠
--\"代表"
a="my name is 'jack'"
b='my name is "jack"'
print(a)--my name is 'jack'
print(b)--my name is "jack"

字符串操作

str = "Name"

转为大写

str2 = string.upper(str)
print(str2)--NAME

转为小写

str3 = string.lower(str)
print(str3)--name

字符串替换

--string.gsub(mainString,findString,replaceString,num)
--在字符串中替换,mainString为要替换的字符串,
--findString 为被替换的字符,replaceString 要替换的字符,
--num 替换次数(可以忽略,则全部替换)

str4 = string.gsub("name name name","a","b",2)
print(str4)--nbme nbme name

字符串查找
返回查找到位置的索引,不存在则返回nil

str5 = string.find("name name","a",5)--从第5个字符串开始查找
print(str5)--7

字符串反转

str6 = string.reverse("name")
print(str6)--eman

字符串格式化

num1= 5
num2=10
str6 = "加法运算:"..num1.."+"..num2.."="..(num1+num2)--未格式化
print(str6)--加法运算:5+10=15
str6 = string.format("加法运算:%d+%d=%d",num1,num2,(num1+num2))--格式化
print(str6)--加法运算:5+10=15

字符与整数相互转换

str7 = string.char(97,98)--整数转字符
print(str7)--ab
str8 = string.byte("ABC",2)--字符转整数,默认第一个
print(str8)--66

字符串长度

str9 = string.len("name")
str10 = #"name"
print(str9,str10)--4	4

字符串拷贝

str11 = string.rep("name",2)
print(str11)--namename

字符串连接

print("na".."me")--name
--string.gmatch(str, pattern)
--回一个迭代器函数,每一次调用这个函数,
--返回一个在字符串 str 找到的下一个符合 pattern 描述的子串。
--如果参数 pattern 描述的字符串没有找到,迭代函数返回nil。

for word in string.gmatch("Hello Lua user", "%a+") do --"#a+"代表一串连续的字母(正则表达式)
   print(word)
end

输出

Hello
Lua
user
--string.match(str, pattern, init)
--string.match()只寻找源字串str中的第一个配对. 参数init可选,
--指定搜寻过程的起点, 默认为1--在成功配对时, 函数将返回配对表达式中的所有捕获结果;
--如果没有设置捕获标记, 则返回整个配对字符串. 当没有成功的配对时, 返回nil。
str12 =  string.match("I have 2 questions for you.", "%d+ %a+")
print(str12)--2 questions
相关推荐
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页