lua 字符串使用
1 --常见字符串功能 2 local function Test1() 3 --大小写 4 assert("AA" == string.upper("aa")) 5 assert("aa" == string.lower("AA")) 6 7 --字符串长度 8 assert(2 == string.len("aa")) 9 assert(6 == string.len("abc123")) 10 assert(6 == string.len("中文")) 11 12 --char->ascii 13 assert("a" == string.char(97)) 14 assert("abc" == string.char(97, 98, 99)) 15 16 --ascii->char 17 assert(97 == string.byte("a")) 18 assert(98 == string.byte("abc", 2)) 19 20 --拼接 21 local str1 = "aa" 22 local str2 = "bb" 23 assert("aabb" == str1 .. str2) 24 25 --table方式的拼接 26 assert("abc1中文" == table.concat({"a", "bc", 1, "中文"})) 27 28 --替换 29 assert("啊bc123_啊1" == string.gsub("abc123_a1", "a", "啊")) 30 assert("啊bc123_a1" == string.gsub("abc123_a1", "a", "啊", 1)) 31 assert("abc123_a1" == string.gsub("abc123_a1", "a", "啊", 0)) 32 33 --查找(开始、结束位置) 34 assert(2,3 == string.find("abc123", "bc")) 35 assert(nil == string.find("abc123", "bd")) 36 assert(4, 9 == string.find("你好中国", "好中")) 37 assert(2,3 == string.find("abc123", "bc", 2)) 38 assert(nil == string.find("abc123", "bc", 3)) 39 assert(2,3 == string.find("abc123", "bc", 1, false)) --false参数表示不要启用模式匹配 40 41 --子串, 裁剪 42 assert("ab" == string.sub("abc中文123", 1, 2)) 43 assert("中" == string.sub("abc中文123", 4, 6)) 44 assert("c12" == string.sub("abc123", 3, -2)) 45 assert("23" == string.sub("abc123", -2)) 46 assert("12" == string.sub("abc123", -3, -2)) 47 48 --反转 49 assert("cba" == string.reverse("abc")) 50 end 51 Test1()
1 ---格式化输出 2 local function TestFormat() 3 assert("a1" == string.format("%s%s", "a", 1)) 4 assert(" abc" == string.format("%5s", "abc")) 5 assert(" ab" == string.format("%5.2s", "abc")) 6 7 assert("a" == string.format("%x", 10)) --小写16进制 8 assert("A" == string.format("%X", 10)) --大写16进制 9 10 assert("7" == string.format("%o", 7)) --8进制 11 assert("10" == string.format("%o", 8)) --8进制 12 assert("11" == string.format("%o", 9)) --8进制 13 assert("17" == string.format("%o", 15)) --8进制 14 assert("20" == string.format("%o", 16)) --8进制 15 16 assert("05" == string.format("%02d", 5)) 17 assert(" 5" == string.format("%2d", 5)) 18 assert("10" == string.format("%02d", 10)) 19 20 assert(" 12.00" == string.format("%6.2f", 12)) --保留2个小数, 不足6位时在前面填充空格 21 assert(" 12.12" == string.format("%6.2f", 12.123)) 22 end 23 TestFormat()