版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/asdfghj253/article/details/80400757
要点一:String
string.upper();转化字符串为大写
string.lower();转化字符串为小写
string.lower();转化字符串为小写
string.gsub(string1,string2,string3);
替换string1里面的字符,比如string1="abcdefg"
在里面找到string2的字符:比如 string2="a"
string3是替换出去的字符 比如:ss
那么输出为: "ssbcdefg"
在里面找到string2的字符:比如 string2="a"
string3是替换出去的字符 比如:ss
那么输出为: "ssbcdefg"
string.reverse(str); --字符串反转( 反向输出 )
string.find(str,"SDY",5);--返回所查找的位置的索引
string.find(str,"SDY",5);--返回所查找的位置的索引
str1="hello sir,my name is SDY"
index1=string.find(str1,"SDY",8);--从str1的第八个字符开始搜索,避免遍历情况耗资源,如果8变为23则找不到SDY了,返回nil
print(index1);--返回22,"SDY"中S位于整个字符串的22个--注意包含空格标点。
string.format();//小提示:%q 接受一个字符串并将其转化为安全被LUA读入的格式
num1=10;
num2=5;
xx=string.format("%d+%d=%d",num1,num2,(num1+num2)); --string.format可以这样输出
print(xx);--返回“10+5=15”
string.char(numb1,numb2,numb3);--数字转字符.并且拼接;
string.byte("ABCD");--默认转化第一个字符串为数字
string.byte("ABCD",numb);--默认转化第numb个字符串为数字
例子:
s1=string.char(97,98,99); --数字转字符.并且拼接;
i1=string.byte("ABCD"); --字符转数字,默认转化第一个 "A"
i2=string.byte("ABCD",4); --后面加数字 4 指转化第4个字符 "D"
print(s1,i1,i2)--返回abc 65 68
要点二:Array
lua的table索引从1开始,且可从负数开始
array ={"lua","xsda"}
for i=1,2 do --lua索引是从1开始的,所以是1-2
print(array[i]);--返回lua xsda
end;
for i=-2,2 do --lua索引可以为负数 (因为lua实质是table--表)
print(array[i]);--返回nil nil nil lua xsda
end
二维数组
array1={{"sss","dasd"},{"小法师","对对对"},{"二万五千里","的"},{"沙发","算法"}}
for i=1,4 do
for j=1,2 do
print(array1[i][j]);--按顺序返回array1里面的字符串
end
end
多维数组
--多维数组建表可以用for循环建表
arrayx={}
--赋值
for i=1,3 do
arrayx[i]={}
for j=1,2 do
arrayx[i][j]=i*j;
end
end
--输出
for i=1,3 do
for j=1,2 do
print(arrayx[i][j]);--返回 1 2 2 4 3 6
end
end
要点三:pairs和ipairs的用法
pairs 迭代(遍历) table , 遍历所有的key跟value
ipairs 按照索引从1开始,递增遍历,但如果中途为空(nil)值会停止
ipairs 按照索引从1开始,递增遍历,但如果中途为空(nil)值会停止
array ={"sasd","ccccc","ddd"}
array[5]="xxxxxxxxxx";
for k,v in pairs(array) do
print(k,v);
end
--[[
返回:
1 sasd
2 ccccc
3 ddd
5 xxxxxxxxxx
]]--
for k,v in ipairs(array) do
print(k,v);
end
--[[
返回:
1 sasd
2 ccccc
3 ddd
]]--