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()