1.lua中的string索引是从1开始,如果从后面开始,索引为-1,往前以此类推
2.string是一个table,拥有一个带有__index的元表,所有string.byte(s,i),也可以写成s:byte(i)
3.string.byte(s,i,j)返回字符串s从i到j的字符的ASCII值,i默认为1,j默认等于i
4.string.char(...)接收0个或者多个参数,返回一个字符串,字符串长度等于参数个数,前提是每一参数作为ASCII码都有一个字符与 之相对应,也就是说大部分的数字是无效的,这个函数参数的ASCII码在跨平台方面不一定是可移植的。例如:string.char(97)==a
5.string.dump(function)返回一个字符串,这个字符串是给定参数函数的二进制表现形式
6.string.find(s,pattern,init,plain)
按照指定的模式,查找字符串,模式规则,遵循lua里面的格式,init表示从字符串的哪个索引开始查找,支持为负数,表示从后往前的第几个字符,plain默认为false,表示打开模式查找,为true表示关闭模式查找,只寻找和pattern一模一样的字符串,有则返回,没有则返回nil,比如s="abc" print(string.find(s,"ab",1,true)),返回1 2,如果是print(string.find(s,"%a",1,true)),则返回为nil,把plain设为false,则返回1
7.string.format()
https://blog.csdn.net/hello_crayon/article/details/50667927
8.string.gmatch(s,pattern)返回的是一个function类型,执行该方法返回s中符合匹配规则的字符串,每次调用都会返回一个新的,如果没有则返回nil 例如:s="abc,bcd efg"
string.gmatch(s,"%w+"),调用第一次返回abc,调用第二次返回bcd,注意:s中的,和空格都是字符,所以严格的来说,返回的是连续的符合匹配模式的字符串
9.string.gsub(s,pattern,rep,m) https://www.jianshu.com/p/f141027e1ca4
pattern里面有几个括号,n就是几,比如
x = string.gsub("hello world from Lua", "(%w+)%s*(%w+)", "%2 %1")
符合pattern的一共有两个,一个是hello world 一个是from lua,第一个中的%2是匹配模式中第二个括号匹配的,就是world%1是匹配模式中第一个括号匹配的,所以用world hello 替代hello world ,类似,第二个中的%2是lua,%1是from
10.string.len(s)返回字符串的长度,空字符串“”长度为0,字符串中的0也算一个字节\000表示0
11.string.lower(s)把字符串中的大写字符变成小写的
12.string.upper(s)把字符串中的小写字符变成大写的
13.string.match(s,pattern,init)返回匹配的字符串,init表示从第几个索引开始查找,如果没有指定pattern,则返回整个字符串,没明白什么意思
14.string.rep(s,n,sep)n代表s重复的次数,相邻s之间以sep分隔符连接,默认sep为“”空,sep是字符串类型
15.string.reverse(s)返回s的倒序排列,比如s="abc" string.reverse(s)--->cba
16.string.sub(s,i,j)返回从i-j之间的字符串,i和j可以为负数,特别的 sub(s,-i)表示从后面往前返回i长度的字符串,但不是倒序哦,比如s="abc" string.sub(s,-2)----->bc 而不是cb,