Lua字符串操作
--Lua字符串
--[[
1、stirng.upper(str) 转化为大写
2、string.lower(str) 转化为小写
3、string.gsub(mainStr,findStr,replaceStr,num) 替换字符
print(string.gsub("aaaa","a","z",3))
4、string.find(Str,substr,(init,[end])) 在目标字符串中搜索从指定索引后的内容(第三个数为索引),返回开始和结束的索引
print(string.find("hello lua user","lua",1))
5、string.reverse(str) 反转字符串
print(string.reverse("hello"))
6、string.fomat(...) 相当于c中的printf
7、string.char(str) 将整形数字转换为字符并连接
print(string.char(97,98,99,100))
string.byte(str,int) 转换字符为整数值(可以指定索引,默认第一个字符)
print(string.byte("ABCD"))
print(string.byte("ABCD",3))
8、 string.len(str) 计算字符串的长度
9、 string.rep(str,n) 返回字符串的n个拷贝
10、 string.gmatch(str, pattern)
回一个迭代器函数,每一次调用这个函数,返回一个在字符串 str 找到的下一个符合 pattern 描述的子串。如果参数 pattern 描述的字符串没有找到,迭代函数返回nil。
for word in string.gmatch("hello Lua user","%a+") --%a+是什么意思?输出什么类型的?
do print(word)
end
11、 string.match(str, pattern, init)
string.match()只寻找源字串str中的第一个配对. 参数init可选, 指定搜寻过程的起点, 默认为1。在成功配对时,函数将返回配对表达式中的所有捕获结果; 如果没有设置捕获标记, 则返回整个配对字符串. 当没有成功的配对时, 返回nil。
print(string.match("i have 2 questions for you.","%d+ %a+"))
print(string.format("%d,%q",string.match("i have 2 questions for you","(%d+) (%a+)")))
--]]
--字符串格式化
--[[
%g(%G) - 接受一个数字并将其转化为%e(%E, 对应%G)及%f中较短的一种格式
%q - 接受一个字符串并将其转化为可安全被Lua编译器读入的格式
%s - 接受一个字符串并按照给定的参数格式化该字符串
(1) 符号: 一个+号表示其后的数字转义符将让正数显示正号. 默认情况下只有负数显示符号.
(2) 占位符: 一个0, 在后面指定了字串宽度时占位用. 不填时的默认占位符是空格.
(3) 对齐标识: 在指定了字串宽度时, 默认为右对齐, 增加-号可以改为左对齐.
(4) 宽度数值
(5) 小数位数/字串裁切: 在宽度数值后增加的小数部分n, 若后接f(浮点数转义符, 如%6.3f)则设定该浮点数的小数只保留n位, 若后接s(字符串转义符, 如%5.3s)则设定该字符串只显示前n位.
--]]