Lua学习-字符串操作

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值