在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
字符串或串(String)是由数字、字母、下划线组成的一串字符。 Lua 语言中字符串可以使用以下三种方式来表示:
示例 string1 = "Lua" print("\"字符串 1 是\"",string1) string2 = 'runoob.com' print("字符串 2 是",string2) string3 = [["Lua 教程"]] print("字符串 3 是",string3) 输出 "字符串 1 是" Lua 字符串 2 是 runoob.com 字符串 3 是 "Lua 教程"
string.upper(argument):字符串全部转为大写字母 string.lower(argument):字符串全部转为小写字母
string.gsub(mainString,findString,replaceString,num) 示例 > string.gsub("aaaa","a","z",3); zzza 3
string.find (str, substr, [init, [end]]) > string.find("Hello Lua user", "Lua", 1) 7 9
string.reverse(arg) > string.reverse("Lua") auL
string.format(...) > string.format("the value is:%d",4) the value is:4
string.char(arg) 和 string.byte(arg[,int]) > string.char(97,98,99,100) abcd > string.byte("ABCD",4) 68 > string.byte("ABCD") 65 >
string.len(arg) string.len("abc") 3
string.rep(string, n) > string.rep("abcd",2)
abcdabcd
.. > print("www.runoob".."com") www.runoobcom
string.gmatch(str, pattern)
回一个迭代器函数,每一次调用这个函数,返回一个在字符串 str 找到的下一个符合 pattern 描述的子串。如果参数 pattern 描述的字符串没有找到,迭代函数返回nil
> for word in string.gmatch("Hello Lua user", "%a+") do print(word) end Hello Lua user
string.match(str, pattern, init) > = string.match("I have 2 questions for you.", "%d+ %a+") 2 questions > = string.format("%d, %q", string.match("I have 2 questions for you.", "(%d+) (%a+)")) 2, "questions"
字符串大小写转换string1 = "Lua"; print(string.upper(string1)) print(string.lower(string1)) 输出 LUA
lua
字符串查找与反转string = "Lua Tutorial" -- 查找字符串 print(string.find(string,"Tutorial")) reversedString = string.reverse(string) print("新字符串为",reversedString) 输出 5 12 新字符串为 lairotuT auL
字符串格式化Lua 提供了 string.format() 函数来生成具有特定格式的字符串, 函数的第一个参数是格式 , 之后是对应格式中每个代号的各种数据。 由于格式字符串的存在, 使得产生的长字符串可读性大大提高了。这个函数的格式很像 C 语言中的 printf()。 以下实例演示了如何对字符串进行格式化操作: 格式字符串可能包含以下的转义码:
为进一步细化格式, 可以在%号后添加参数. 参数将以如下的顺序读入:
示例 string1 = "Lua" string2 = "Tutorial" number1 = 10 number2 = 20 -- 基本字符串格式化 print(string.format("基本格式化 %s %s",string1,string2)) -- 日期格式化 date = 2; month = 1; year = 2014 print(string.format("日期格式化 %02d/%02d/%03d", date, month, year)) -- 十进制格式化 print(string.format("%.4f",1/3)) 输出 基本格式化 Lua Tutorial 日期格式化 02/01/2014 0.3333
示例 string.format("%c", 83) 输出S string.format("%+d", 17.0) 输出+17 string.format("%05d", 17) 输出00017 string.format("%o", 17) 输出21 string.format("%u", 3.14) 输出3 string.format("%x", 13) 输出d string.format("%X", 13) 输出D string.format("%e", 1000) 输出1.000000e+03 string.format("%E", 1000) 输出1.000000E+03 string.format("%6.3f", 13) 输出13.000 string.format("%q", "One\nTwo") 输出"One\ Two" string.format("%s", "monkey") 输出monkey string.format("%10s", "monkey") 输出 monkey string.format("%5.3s", "monkey") 输出 mon
字符与整数相互转换-- 字符转换 -- 转换第一个字符 print(string.byte("Lua")) -- 转换第三个字符 print(string.byte("Lua",3)) -- 转换末尾第一个字符 print(string.byte("Lua",-1)) -- 第二个字符 print(string.byte("Lua",2)) -- 转换末尾第二个字符 print(string.byte("Lua",-2)) -- 整数 ASCII 码转换为字符 print(string.char(97)) 输出 76 97 97 117 117 a
其他常用函数示例 string1 = "www." string2 = "runoob" string3 = ".com" -- 使用 .. 进行字符串连接 print("连接字符串",string1..string2..string3) -- 字符串长度 print("字符串长度 ",string.len(string2)) -- 字符串复制 2 次 repeatedString = string.rep(string2,2) print(repeatedString) 输出 连接字符串 www.runoob.com 字符串长度 6 runoobrunoob
匹配模式s = "Deadline is 30/05/1999, firm" date = "%d%d/%d%d/%d%d%d%d" print(string.sub(s, string.find(s, date))) --> 30/05/1999 下面的表列出了Lua支持的所有字符类: 单个字符(除 ^$()%.[]*+-? 外): 与该字符自身配对
当上述的字符类用大写书写时, 表示与非此字符类的任何字符配对. 例如, %S表示与任何非空白字符配对.例如,'%A'非字母的字符: > print(string.gsub("hello, up-down!", "%A", ".")) hello..up.down. 4
|
请发表评论