lua学习例题详解

来源:互联网 发布:如何提高淘宝店铺排名 编辑:程序博客网 时间:2024/05/05 19:47

local str="fdsfAkk!Gr%g&re"将这个字符串的每一个字母类型的字符计算出他在这个字符串的个数。

方法1:

用2个循环把每一个的字符与后面的进行比较。

str="fdsfAkk!Gr%g&re"

str=string.gsub(str,"%A","")

print(str)

str=string.upper(str)

str_chucun=""

for i=1,#str do

if string.find(str_chucun,string.sub(str,i,i)) then

else

str_chucun=str_chucun..string.sub(str,i,i)

n=1

for j=i+1,#str do

if string.sub(str,i,i)==string.sub(str,j,j) then

n=n+1

end

end

print(string.sub(str,i,i).." "..n)

--str_chucun=str_chucun..string.sub(str,i,i)

end

End

方法2:

str="fdsfAkk!Gr%g&re"

 

t={}

for i=1,26 do

t[i]=0

end

for i=1,#str do

for j=1,26 do

if string.byte(string.sub(str,i,i),1,1)==96+j or

string.byte(string.sub(str,i,i),1,1)==64+j then

t[j]=t[j]+1

end

end

end

sum=""

for k,v in pairs(t) do

if k==26 then

str=""

else

str=","

end

sum=sum..k.." "..v..str

end

print(sum)

方法3:

str="fdsfAkk!Gr%g&re"

for i=1,26 do

for j=1,#str do

if string.find(string.sub(str,j,j),"["..string.char(96+i)..string.char(64+i).."]") then

t[i]=t[i]+1

end

end

end

 

sum=""

for k,v in pairs(t) do

if k==26 then

str=""

else

str=","

end

sum=sum..k.." "..v..str

end

print(sum)

0 0