string.char(n1,n2,...)根据ASCII码表返回传入的对应的字符 一般用string.char(10)是换行符
string.len(myString) 返回字符串的长度
string.sub(myStirng,start,end) 返回指定字符串的子川,start/end指定开始结束位置 Lua的数组下标是从1开始的(OMG!!!) 可以只传一个参数,表示返回start到字符串末尾的子串, 负数表示从字符串的末尾开始计算,-1表示数组最后一个
string.format():(1)格式化输出指定字符串%s表示字符串,%d表示数字,%.2f
(2)还可以用来连接字符串, myString=string.format("%s%s",string1,string2) string.format第一个参数用来指定字符串的格式.
stirng.find(sourceString,findString):在sourceString中查找第一个符合findString字符的位置,返回值为开始位置和结束位置,如果没有找到则返回nil
一个很好的例子: 打印出$17.50
myString = "The price is $17.50."
fiter = "$%d%d.%d%d"
print(string.sub(myString,string.find(myString,filter)))
格式是一种模版,让Lua可以从字符串中过滤出有意义的结果
%d表示数字,%D表示非数字,即大写字母为小写字母的补集,%a是字母,%a+表示任意长度的字母。
加%前缀可以让特殊符号也能用在格式中.
替换:string.gsub(sourceString,pattern,replacementString) 返回值是一个字符串,sourceString字符串中满足pattern格式的字符都会被替换成replacementString参数的值,可在函数的最后加一个可选参数,用于指定替换的次数。例:更新电话号码中的区号:
custData = "(309) 555-1234"
custData = string.gsub(custData,"%(%d%d%d%)","(781)")
print (custData) --prints "(781) 555-1234"
再例:myString = "happy,hello,home,hot,hudson"
myString = string.gsub(myString,"h%a+","An H word!",2)
print (myString) --An H word!,An H word!,home,hot,huson
查找:string.gfind(sourceString,pattern) --遍历一个字符串,一旦找到符合指定格式的字符串就返回该字符串。例:myString = "This is my rather long string."
print (myString)
counter = 1
for myWord in string.gfind(myString,"%a+") do
print (string.format("Word #%d: %s",counter ,myWord))
counter = counter+1
end
--[[
This is my rather long string.
Word #1: This
Word #2: is
Word #3: my
Word #4: rather
Word #5: long
Word #6: string
]]--