1、字符串的查找
string.find(s,“ah”,5),5如果省略,则从s字符串的第一位开始查找
--结果:10,11
s = "aaabbbcccab"
_start,_end = string.find(s,"ab",5)
print(_start..,.._end)
--找到数组中所有的“ab”元素
--结果:3---4 10---11
ii = 0
repeat
_start,_end = string.find(s,"ab",ii)
if _start ~= nil
print(_start.."---".._end)
ii = _end
else
break
end
until false
2、字符串的替换
string.gsub(s,“a”,“b”)
–把字符串s中的a替换成b,此方法是全部替换
--结果:啊啊啊bbbccc啊b
s = string.gsub(s,"a","啊")
print(s)
3、多行文本框(多行字符串)
使用 [[…]] 表示字符串,这种形式的字符串可以包含多行,也可以嵌套且不会解释转义序列,如果第一个字符是换行符会被自行忽略掉。
--此种方法在运行时会报错,需要用[[]]替换成“”
page = "
<html>
<title></title>
<body>
hello,world
</body>
</html>
"
print(page)
page = [[
<html>
<title></title>
<body>
hello,world
</body>
</html>
]]
print(page)
4、字符串的拼接
使用连接符 …
当在一个数字后面写…时,必须加上空格以防止被解释错
5、字符串的类型转换
Lua会自动在string和numbers之间自动进行类型转换,当一个字符串使用算术操作符时,string就会被转成数字。
print("10"+1) --->11
print("hello"+1) ----ERROR cannot convert "hello"
6、把数字转换成字符串
tostring()
n =10
print(type(n)) --number
print(type(tostring(n))) -->string
7、字符串的倒叙
string.reverse()
--结果:olleh
s = "hello"
s = string.reverse(s)
print(s)
8、随机数
Lua生成随机数需要用到两个函数
math.randomseed(xxx) --添加种子数,
math.random([n [,m] ]) --提取随机数,有三种用法:无参调用,产生(0,1)之间的浮点随机数;如果只有参数n,产生1-n之间的整数;如果有两个参数n , m,产生n - m之间的随机整数。
--此种方法设置的随机数,每次运行输出都是一样的,成为“伪随机数”。对于相同的随机种子,生成的随机序列一定是相同的,所以程序每次运行,赋予不同的种子很重要。可以使用系统时间作为随机种子。
math.randomseed(1)
for i = 0,10 do
num = math.random(1,10)
print(num)
end
--这种方式每次运行,得到的结果顺序还是有所相近,原因是os.time值前几位没有改变,改变的之后末尾几位。
math.randomseed(os.time())
for i = 0,10 do
num = math.random(1,10)
print(num)
end
解决办法:
mytime = os.time()
mytime = string.reverse(mytime) --转换之后,每次种子数都会变化很大
math.randomseed(mytime)