Lua的自我学习之路-语法学习6

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/asdfghj253/article/details/80400757

要点一:String
string.upper();转化字符串为大写
string.lower();转化字符串为小写

string.gsub(string1,string2,string3);  
替换string1里面的字符,比如string1="abcdefg"
在里面找到string2的字符:比如 string2="a"
string3是替换出去的字符 比如:ss
那么输出为: "ssbcdefg"

string.reverse(str); --字符串反转( 反向输出 )
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)值会停止

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
]]--

猜你喜欢

转载自blog.csdn.net/asdfghj253/article/details/80400757