字符串string的函数操作
string.upper(argument); -- 字符串全部转为大写字母并返回
string.lower(argument); -- 字符串全部转为小写字母并返回
string.gsub(mainStirng, findString, replaceString, num); -- 将mainString所有的findString都替换为replaceString,num表示替换次数,如果只够替换一次,则只替换一次
string.find(s, substr, [init, [end]]); -- 在s中寻找substr,如果找到,返回substr开始和结束位置,如果没有找到返回nil。第三个可选参数表示从哪里开始搜索。
init值并不影响substr的位置,比如上图的第二个例子,"r" 原来在 "helloworld" 的第 8 个位置,即使从第三个位置开始搜索,它依旧返回8
string.reverse(arg); -- 反转字符串并返回
string.len(str); -- 计算字符串str的长度
string.rep(str, num); -- 返回字符串str的 num个拷贝
string.char(arg1, arg2, ...); -- char函数根据ASCII码, 将参数arg转换为对应的字符并返回,如果有多个参数,则将它们都转为对应的ASCII字符并连接后返回
string.byte(arg[, init]); -- byte() 转换字符为整数,可指定一个位置init,默认为1 ( -1表示最后一个,-2表示倒数第二个,依此类推)
string.sub(str, start, end); -- 函数返回指定字符串的子串,start为开始位置,end为结束位置,start也可以为负数,表示倒数第几个位置,end默认为最后一个
string.format(...); -- 返回一个类似C语言printf函数的格式化字符串
比如:
这个例子表示了format函数有连接字符串的功能。
format函数主要功能是根据参数格式化输出复杂的字符串:
格式是一种模板,让Lua可以从字符串中过滤出有意义的结果:
table的函数操作
table.concat(list [, sep [, start [, end ]]]); -- 在list中,从start开始到end,用sep作为间隔,将它们连接起来并返回。sep默认为空的string,start默认为1,end默认为#list
table.insert(list, [pos, ] value); -- 在指定位置pos处插入一个元素value, pos为可选参数,默认为数组末尾。
table.remove(list [, pos]); -- 移除数组list中pos位置处的元素,返回移除的元素,pos默认为#list
table.sort(list [, comp]); -- 将数组list排序,comp必须是一个接受两个参数数组元素的function,function返回值为true,用来比较数组参数元素。sort函数默认使用 "<" 来排序
更多的、更高级的table操作在后面会有更新~